aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/obscuren/qml/gl
diff options
context:
space:
mode:
Diffstat (limited to 'Godeps/_workspace/src/github.com/obscuren/qml/gl')
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/funcs.cpp1848
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/funcs.h347
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/gl.go2528
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/funcs.cpp2022
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/funcs.h376
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/gl.go2789
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/funcs.cpp2250
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/funcs.h414
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/gl.go3152
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/funcs.cpp2526
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/funcs.h460
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/gl.go3571
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/funcs.cpp2790
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/funcs.h504
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/gl.go3892
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/funcs.cpp2892
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/funcs.h521
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/gl.go4237
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/funcs.cpp3444
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/funcs.h613
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/gl.go6407
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/funcs.cpp3480
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/funcs.h619
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/gl.go6652
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/funcs.cpp3966
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/funcs.h700
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/gl.go7663
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/funcs.cpp1422
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/funcs.h276
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/gl.go4999
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/funcs.cpp4140
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/funcs.h729
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/gl.go7973
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/funcs.cpp1530
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/funcs.h294
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/gl.go4729
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/funcs.cpp4488
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/funcs.h787
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/gl.go8281
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/funcs.cpp1878
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/funcs.h352
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/gl.go5489
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/funcs.cpp4764
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/funcs.h833
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/gl.go8607
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/funcs.cpp2154
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/funcs.h398
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/gl.go5815
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/funcs.cpp5286
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/funcs.h920
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/gl.go9201
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/funcs.cpp2676
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/funcs.h485
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/gl.go6409
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/funcs.cpp5358
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/funcs.h932
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/gl.go9386
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/funcs.cpp2748
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/funcs.h497
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/gl.go6594
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/funcs.cpp5556
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/funcs.h965
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/gl.go9845
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/funcs.cpp2946
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/funcs.h530
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/gl.go7052
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/funcs.cpp813
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/funcs.h182
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/gl.go2990
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/Makefile9
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/funcs.go1764
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/gl.xml43891
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/main.go1283
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/parseqt.go13904
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/parseqt.rl184
-rw-r--r--Godeps/_workspace/src/github.com/obscuren/qml/gl/glbase/glbase.go33
76 files changed, 283040 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/funcs.cpp
new file mode 100644
index 000000000..d7d9cf657
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/funcs.cpp
@@ -0,0 +1,1848 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_1_0.h>
+
+#include "funcs.h"
+
+void *gl1_0_funcs() {
+ QOpenGLFunctions_1_0* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_1_0>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl1_0_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl1_0_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl1_0_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl1_0_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl1_0_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl1_0_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl1_0_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl1_0_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl1_0_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl1_0_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl1_0_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl1_0_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl1_0_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl1_0_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl1_0_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl1_0_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl1_0_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl1_0_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl1_0_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl1_0_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl1_0_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl1_0_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl1_0_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl1_0_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl1_0_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl1_0_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl1_0_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl1_0_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl1_0_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl1_0_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl1_0_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl1_0_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl1_0_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl1_0_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl1_0_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl1_0_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl1_0_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl1_0_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl1_0_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl1_0_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl1_0_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl1_0_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl1_0_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl1_0_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl1_0_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl1_0_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl1_0_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl1_0_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl1_0_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl1_0_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl1_0_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl1_0_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl1_0_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl1_0_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl1_0_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl1_0_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl1_0_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl1_0_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl1_0_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl1_0_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl1_0_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl1_0_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl1_0_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl1_0_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl1_0_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl1_0_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl1_0_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl1_0_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl1_0_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl1_0_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl1_0_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl1_0_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl1_0_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl1_0_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl1_0_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl1_0_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl1_0_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl1_0_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl1_0_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl1_0_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl1_0_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl1_0_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl1_0_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl1_0_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl1_0_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl1_0_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl1_0_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl1_0_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl1_0_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl1_0_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl1_0_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl1_0_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl1_0_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl1_0_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl1_0_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl1_0_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl1_0_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl1_0_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl1_0_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl1_0_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl1_0_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl1_0_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl1_0_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_0_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_0_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl1_0_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl1_0_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_0_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_0_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl1_0_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl1_0_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl1_0_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl1_0_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl1_0_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl1_0_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl1_0_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl1_0_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl1_0_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl1_0_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl1_0_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl1_0_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl1_0_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl1_0_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl1_0_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl1_0_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl1_0_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl1_0_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl1_0_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl1_0_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl1_0_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl1_0_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl1_0_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl1_0_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl1_0_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl1_0_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl1_0_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl1_0_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl1_0_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl1_0_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl1_0_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl1_0_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl1_0_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl1_0_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl1_0_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl1_0_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl1_0_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl1_0_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl1_0_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl1_0_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl1_0_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl1_0_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl1_0_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl1_0_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl1_0_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl1_0_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl1_0_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl1_0_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl1_0_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl1_0_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl1_0_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl1_0_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl1_0_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl1_0_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl1_0_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl1_0_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl1_0_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl1_0_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl1_0_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl1_0_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl1_0_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl1_0_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl1_0_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl1_0_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl1_0_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl1_0_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl1_0_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl1_0_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl1_0_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl1_0_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl1_0_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl1_0_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl1_0_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl1_0_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl1_0_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl1_0_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl1_0_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl1_0_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl1_0_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl1_0_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl1_0_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl1_0_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl1_0_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl1_0_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl1_0_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl1_0_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl1_0_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl1_0_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl1_0_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl1_0_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl1_0_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl1_0_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl1_0_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl1_0_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl1_0_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl1_0_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl1_0_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl1_0_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl1_0_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl1_0_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl1_0_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl1_0_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl1_0_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl1_0_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl1_0_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl1_0_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl1_0_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl1_0_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl1_0_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl1_0_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl1_0_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl1_0_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl1_0_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl1_0_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl1_0_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl1_0_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl1_0_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl1_0_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl1_0_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl1_0_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl1_0_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl1_0_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl1_0_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl1_0_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl1_0_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl1_0_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl1_0_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl1_0_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl1_0_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl1_0_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl1_0_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl1_0_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl1_0_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl1_0_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl1_0_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl1_0_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl1_0_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl1_0_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl1_0_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl1_0_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl1_0_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl1_0_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl1_0_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl1_0_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl1_0_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl1_0_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl1_0_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl1_0_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl1_0_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl1_0_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl1_0_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl1_0_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl1_0_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl1_0_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl1_0_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl1_0_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl1_0_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl1_0_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl1_0_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl1_0_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl1_0_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl1_0_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl1_0_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl1_0_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl1_0_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl1_0_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl1_0_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl1_0_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl1_0_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl1_0_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl1_0_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl1_0_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl1_0_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl1_0_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl1_0_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl1_0_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl1_0_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl1_0_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl1_0_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl1_0_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl1_0_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl1_0_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl1_0_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl1_0_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl1_0_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl1_0_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl1_0_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl1_0_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl1_0_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl1_0_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl1_0_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl1_0_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl1_0_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl1_0_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl1_0_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl1_0_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_1_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_0*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/funcs.h
new file mode 100644
index 000000000..c016eec7b
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/funcs.h
@@ -0,0 +1,347 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl1_0_funcs();
+
+void gl1_0_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_0_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl1_0_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl1_0_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl1_0_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl1_0_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_0_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_0_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_0_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl1_0_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl1_0_glGetError(void *_glfuncs);
+void gl1_0_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl1_0_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl1_0_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_0_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl1_0_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl1_0_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_0_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl1_0_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl1_0_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl1_0_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl1_0_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl1_0_glFlush(void *_glfuncs);
+void gl1_0_glFinish(void *_glfuncs);
+void gl1_0_glEnable(void *_glfuncs, GLenum cap);
+void gl1_0_glDisable(void *_glfuncs, GLenum cap);
+void gl1_0_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl1_0_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl1_0_glStencilMask(void *_glfuncs, GLuint mask);
+void gl1_0_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl1_0_glClearStencil(void *_glfuncs, GLint s);
+void gl1_0_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_0_glClear(void *_glfuncs, GLbitfield mask);
+void gl1_0_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl1_0_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_0_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_0_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_0_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_0_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_0_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_0_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_0_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_0_glPointSize(void *_glfuncs, GLfloat size);
+void gl1_0_glLineWidth(void *_glfuncs, GLfloat width);
+void gl1_0_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl1_0_glFrontFace(void *_glfuncs, GLenum mode);
+void gl1_0_glCullFace(void *_glfuncs, GLenum mode);
+void gl1_0_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_0_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_0_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_0_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_0_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl1_0_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl1_0_glPushMatrix(void *_glfuncs);
+void gl1_0_glPopMatrix(void *_glfuncs);
+void gl1_0_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl1_0_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_0_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_0_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl1_0_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_0_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_0_glLoadIdentity(void *_glfuncs);
+void gl1_0_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl1_0_glIsList(void *_glfuncs, GLuint list);
+void gl1_0_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl1_0_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl1_0_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl1_0_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_0_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_0_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl1_0_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl1_0_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl1_0_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl1_0_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl1_0_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl1_0_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl1_0_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl1_0_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl1_0_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl1_0_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl1_0_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl1_0_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_0_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl1_0_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl1_0_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl1_0_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl1_0_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_0_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_0_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl1_0_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl1_0_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl1_0_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl1_0_glEvalPoint1(void *_glfuncs, GLint i);
+void gl1_0_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl1_0_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl1_0_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl1_0_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl1_0_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl1_0_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl1_0_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl1_0_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl1_0_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl1_0_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl1_0_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl1_0_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl1_0_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl1_0_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl1_0_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl1_0_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl1_0_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl1_0_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_0_glPopAttrib(void *_glfuncs);
+void gl1_0_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl1_0_glIndexMask(void *_glfuncs, GLuint mask);
+void gl1_0_glClearIndex(void *_glfuncs, GLfloat c);
+void gl1_0_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_0_glPushName(void *_glfuncs, GLuint name);
+void gl1_0_glPopName(void *_glfuncs);
+void gl1_0_glPassThrough(void *_glfuncs, GLfloat token);
+void gl1_0_glLoadName(void *_glfuncs, GLuint name);
+void gl1_0_glInitNames(void *_glfuncs);
+GLint gl1_0_glRenderMode(void *_glfuncs, GLenum mode);
+void gl1_0_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl1_0_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl1_0_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl1_0_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl1_0_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl1_0_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl1_0_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl1_0_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl1_0_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_0_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_0_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_0_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_0_glShadeModel(void *_glfuncs, GLenum mode);
+void gl1_0_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl1_0_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl1_0_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl1_0_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl1_0_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl1_0_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl1_0_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_0_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl1_0_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_0_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_0_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl1_0_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl1_0_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl1_0_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl1_0_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_0_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_0_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_0_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_0_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_0_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl1_0_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_0_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl1_0_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_0_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_0_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_0_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_0_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl1_0_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_0_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_0_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_0_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_0_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl1_0_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl1_0_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_0_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_0_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl1_0_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl1_0_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl1_0_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl1_0_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl1_0_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl1_0_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl1_0_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl1_0_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl1_0_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl1_0_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl1_0_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl1_0_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl1_0_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl1_0_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl1_0_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl1_0_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl1_0_glTexCoord1i(void *_glfuncs, GLint s);
+void gl1_0_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl1_0_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl1_0_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl1_0_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl1_0_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl1_0_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl1_0_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl1_0_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl1_0_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl1_0_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl1_0_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_0_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl1_0_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_0_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_0_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_0_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_0_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl1_0_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_0_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_0_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_0_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_0_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl1_0_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl1_0_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_0_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_0_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl1_0_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl1_0_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl1_0_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl1_0_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl1_0_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl1_0_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl1_0_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl1_0_glIndexs(void *_glfuncs, GLshort c);
+void gl1_0_glIndexiv(void *_glfuncs, const GLint* c);
+void gl1_0_glIndexi(void *_glfuncs, GLint c);
+void gl1_0_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl1_0_glIndexf(void *_glfuncs, GLfloat c);
+void gl1_0_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl1_0_glIndexd(void *_glfuncs, GLdouble c);
+void gl1_0_glEnd(void *_glfuncs);
+void gl1_0_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl1_0_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl1_0_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl1_0_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl1_0_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl1_0_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl1_0_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl1_0_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl1_0_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl1_0_glColor4iv(void *_glfuncs, const GLint* v);
+void gl1_0_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl1_0_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_0_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl1_0_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl1_0_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl1_0_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl1_0_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl1_0_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl1_0_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl1_0_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl1_0_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl1_0_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl1_0_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl1_0_glColor3iv(void *_glfuncs, const GLint* v);
+void gl1_0_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl1_0_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl1_0_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl1_0_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl1_0_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl1_0_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl1_0_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl1_0_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl1_0_glBegin(void *_glfuncs, GLenum mode);
+void gl1_0_glListBase(void *_glfuncs, GLuint base);
+GLuint gl1_0_glGenLists(void *_glfuncs, GLsizei range_);
+void gl1_0_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl1_0_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl1_0_glCallList(void *_glfuncs, GLuint list);
+void gl1_0_glEndList(void *_glfuncs);
+void gl1_0_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/gl.go
new file mode 100644
index 000000000..ce6c47ce4
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.0/gl.go
@@ -0,0 +1,2528 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 1.0 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl1_0_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 1.0 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 1.0 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ BITMAP = 0x1A00
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+
+ CLAMP = 0x2900
+ REPEAT = 0x2901
+)
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl1_0_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl1_0_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl1_0_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl1_0_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl1_0_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_0_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_0_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_0_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl1_0_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl1_0_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl1_0_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl1_0_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl1_0_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_0_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl1_0_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl1_0_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl1_0_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl1_0_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl1_0_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl1_0_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl1_0_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl1_0_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl1_0_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl1_0_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl1_0_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl1_0_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl1_0_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl1_0_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl1_0_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl1_0_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl1_0_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl1_0_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl1_0_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl1_0_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_0_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_0_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_0_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl1_0_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_0_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl1_0_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl1_0_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl1_0_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl1_0_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl1_0_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl1_0_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl1_0_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl1_0_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl1_0_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl1_0_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl1_0_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl1_0_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl1_0_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl1_0_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl1_0_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl1_0_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_0_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_0_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_0_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl1_0_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl1_0_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl1_0_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl1_0_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_0_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl1_0_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_0_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_0_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_0_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_0_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_0_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl1_0_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl1_0_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl1_0_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl1_0_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_0_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_0_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl1_0_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl1_0_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl1_0_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_0_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_0_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_0_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_0_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl1_0_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl1_0_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl1_0_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl1_0_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl1_0_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl1_0_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl1_0_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl1_0_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl1_0_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl1_0_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl1_0_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl1_0_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_0_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl1_0_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_0_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl1_0_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl1_0_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl1_0_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl1_0_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl1_0_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl1_0_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl1_0_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl1_0_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl1_0_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl1_0_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl1_0_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl1_0_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl1_0_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl1_0_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl1_0_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl1_0_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl1_0_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl1_0_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl1_0_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl1_0_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl1_0_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl1_0_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl1_0_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl1_0_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl1_0_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl1_0_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl1_0_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_0_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl1_0_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_0_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl1_0_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_0_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl1_0_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_0_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl1_0_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_0_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl1_0_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl1_0_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl1_0_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_0_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl1_0_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_0_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl1_0_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl1_0_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl1_0_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl1_0_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl1_0_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl1_0_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_0_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl1_0_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_0_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl1_0_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl1_0_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl1_0_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl1_0_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl1_0_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl1_0_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_0_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl1_0_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl1_0_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl1_0_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl1_0_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl1_0_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl1_0_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl1_0_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl1_0_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl1_0_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl1_0_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl1_0_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl1_0_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl1_0_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl1_0_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl1_0_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl1_0_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl1_0_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl1_0_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl1_0_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl1_0_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl1_0_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl1_0_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl1_0_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl1_0_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl1_0_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl1_0_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl1_0_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl1_0_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl1_0_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl1_0_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl1_0_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl1_0_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl1_0_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl1_0_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl1_0_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl1_0_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl1_0_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl1_0_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl1_0_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl1_0_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl1_0_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl1_0_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl1_0_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl1_0_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl1_0_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl1_0_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl1_0_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl1_0_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl1_0_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl1_0_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl1_0_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl1_0_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl1_0_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl1_0_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl1_0_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl1_0_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl1_0_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl1_0_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl1_0_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl1_0_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl1_0_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl1_0_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl1_0_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl1_0_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl1_0_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl1_0_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl1_0_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl1_0_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl1_0_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl1_0_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl1_0_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl1_0_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl1_0_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl1_0_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl1_0_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl1_0_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl1_0_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl1_0_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl1_0_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl1_0_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl1_0_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl1_0_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl1_0_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl1_0_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl1_0_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl1_0_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl1_0_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl1_0_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl1_0_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl1_0_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_0_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl1_0_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl1_0_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl1_0_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl1_0_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl1_0_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl1_0_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl1_0_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl1_0_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_0_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl1_0_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl1_0_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl1_0_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/funcs.cpp
new file mode 100644
index 000000000..1c0f0adbd
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/funcs.cpp
@@ -0,0 +1,2022 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_1_1.h>
+
+#include "funcs.h"
+
+void *gl1_1_funcs() {
+ QOpenGLFunctions_1_1* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_1_1>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl1_1_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl1_1_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl1_1_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl1_1_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl1_1_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl1_1_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl1_1_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl1_1_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl1_1_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl1_1_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl1_1_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl1_1_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl1_1_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl1_1_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl1_1_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl1_1_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl1_1_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl1_1_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl1_1_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl1_1_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl1_1_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl1_1_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl1_1_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl1_1_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl1_1_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl1_1_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl1_1_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl1_1_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl1_1_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl1_1_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl1_1_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl1_1_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl1_1_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl1_1_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl1_1_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl1_1_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl1_1_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl1_1_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl1_1_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl1_1_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl1_1_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl1_1_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl1_1_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl1_1_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl1_1_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl1_1_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl1_1_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl1_1_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl1_1_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl1_1_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl1_1_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl1_1_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl1_1_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl1_1_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl1_1_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl1_1_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl1_1_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl1_1_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl1_1_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl1_1_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl1_1_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl1_1_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl1_1_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl1_1_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl1_1_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl1_1_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl1_1_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl1_1_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl1_1_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl1_1_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl1_1_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl1_1_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl1_1_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl1_1_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl1_1_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl1_1_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl1_1_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl1_1_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl1_1_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl1_1_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl1_1_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl1_1_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl1_1_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl1_1_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl1_1_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl1_1_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl1_1_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl1_1_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl1_1_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl1_1_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl1_1_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl1_1_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl1_1_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl1_1_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl1_1_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl1_1_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl1_1_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl1_1_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl1_1_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl1_1_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl1_1_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl1_1_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl1_1_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl1_1_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl1_1_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl1_1_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl1_1_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl1_1_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl1_1_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl1_1_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl1_1_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl1_1_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl1_1_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl1_1_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl1_1_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl1_1_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl1_1_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl1_1_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_1_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_1_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl1_1_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl1_1_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_1_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_1_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl1_1_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl1_1_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl1_1_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl1_1_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl1_1_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl1_1_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl1_1_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl1_1_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl1_1_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl1_1_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl1_1_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl1_1_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl1_1_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl1_1_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl1_1_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl1_1_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl1_1_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl1_1_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl1_1_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl1_1_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl1_1_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl1_1_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl1_1_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl1_1_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl1_1_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl1_1_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl1_1_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl1_1_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl1_1_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl1_1_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl1_1_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl1_1_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl1_1_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl1_1_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl1_1_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl1_1_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl1_1_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl1_1_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl1_1_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl1_1_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl1_1_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl1_1_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl1_1_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl1_1_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl1_1_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl1_1_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl1_1_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl1_1_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl1_1_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl1_1_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl1_1_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl1_1_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl1_1_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl1_1_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl1_1_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl1_1_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl1_1_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl1_1_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl1_1_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl1_1_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl1_1_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl1_1_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl1_1_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl1_1_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl1_1_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl1_1_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl1_1_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl1_1_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl1_1_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl1_1_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl1_1_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl1_1_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl1_1_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl1_1_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl1_1_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl1_1_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl1_1_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl1_1_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl1_1_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl1_1_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl1_1_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl1_1_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl1_1_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl1_1_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl1_1_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl1_1_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl1_1_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl1_1_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl1_1_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl1_1_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl1_1_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl1_1_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl1_1_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl1_1_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl1_1_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl1_1_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl1_1_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl1_1_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl1_1_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl1_1_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl1_1_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl1_1_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl1_1_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl1_1_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl1_1_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl1_1_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl1_1_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl1_1_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl1_1_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl1_1_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl1_1_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl1_1_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl1_1_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl1_1_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl1_1_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl1_1_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl1_1_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl1_1_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl1_1_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl1_1_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl1_1_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl1_1_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl1_1_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl1_1_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl1_1_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl1_1_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl1_1_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl1_1_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl1_1_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl1_1_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl1_1_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl1_1_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl1_1_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl1_1_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl1_1_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl1_1_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl1_1_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl1_1_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl1_1_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl1_1_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl1_1_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl1_1_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl1_1_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl1_1_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl1_1_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl1_1_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl1_1_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl1_1_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl1_1_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl1_1_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl1_1_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl1_1_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl1_1_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl1_1_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl1_1_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl1_1_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl1_1_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl1_1_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl1_1_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl1_1_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl1_1_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl1_1_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl1_1_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl1_1_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl1_1_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl1_1_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl1_1_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl1_1_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl1_1_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl1_1_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl1_1_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl1_1_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl1_1_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl1_1_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl1_1_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl1_1_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl1_1_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl1_1_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl1_1_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl1_1_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl1_1_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl1_1_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl1_1_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl1_1_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl1_1_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl1_1_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl1_1_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl1_1_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl1_1_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl1_1_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl1_1_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl1_1_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl1_1_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl1_1_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl1_1_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl1_1_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl1_1_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl1_1_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl1_1_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl1_1_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl1_1_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl1_1_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl1_1_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl1_1_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl1_1_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl1_1_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl1_1_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl1_1_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl1_1_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl1_1_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_1*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/funcs.h
new file mode 100644
index 000000000..f89c6a452
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/funcs.h
@@ -0,0 +1,376 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl1_1_funcs();
+
+void gl1_1_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_1_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl1_1_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl1_1_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl1_1_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl1_1_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_1_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_1_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_1_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl1_1_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl1_1_glGetError(void *_glfuncs);
+void gl1_1_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl1_1_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl1_1_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_1_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl1_1_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl1_1_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_1_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl1_1_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl1_1_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl1_1_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl1_1_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl1_1_glFlush(void *_glfuncs);
+void gl1_1_glFinish(void *_glfuncs);
+void gl1_1_glEnable(void *_glfuncs, GLenum cap);
+void gl1_1_glDisable(void *_glfuncs, GLenum cap);
+void gl1_1_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl1_1_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl1_1_glStencilMask(void *_glfuncs, GLuint mask);
+void gl1_1_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl1_1_glClearStencil(void *_glfuncs, GLint s);
+void gl1_1_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_1_glClear(void *_glfuncs, GLbitfield mask);
+void gl1_1_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl1_1_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_1_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_1_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_1_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_1_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_1_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_1_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_1_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_1_glPointSize(void *_glfuncs, GLfloat size);
+void gl1_1_glLineWidth(void *_glfuncs, GLfloat width);
+void gl1_1_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl1_1_glFrontFace(void *_glfuncs, GLenum mode);
+void gl1_1_glCullFace(void *_glfuncs, GLenum mode);
+void gl1_1_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl1_1_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl1_1_glIsTexture(void *_glfuncs, GLuint texture);
+void gl1_1_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl1_1_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl1_1_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl1_1_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_1_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_1_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_1_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl1_1_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl1_1_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl1_1_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl1_1_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl1_1_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl1_1_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_1_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_1_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_1_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_1_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl1_1_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl1_1_glPushMatrix(void *_glfuncs);
+void gl1_1_glPopMatrix(void *_glfuncs);
+void gl1_1_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl1_1_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_1_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_1_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl1_1_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_1_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_1_glLoadIdentity(void *_glfuncs);
+void gl1_1_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl1_1_glIsList(void *_glfuncs, GLuint list);
+void gl1_1_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl1_1_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl1_1_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl1_1_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_1_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_1_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl1_1_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl1_1_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl1_1_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl1_1_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl1_1_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl1_1_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl1_1_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl1_1_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl1_1_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl1_1_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl1_1_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl1_1_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_1_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl1_1_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl1_1_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl1_1_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl1_1_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_1_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_1_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl1_1_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl1_1_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl1_1_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl1_1_glEvalPoint1(void *_glfuncs, GLint i);
+void gl1_1_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl1_1_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl1_1_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl1_1_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl1_1_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl1_1_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl1_1_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl1_1_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl1_1_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl1_1_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl1_1_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl1_1_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl1_1_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl1_1_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl1_1_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl1_1_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl1_1_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl1_1_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_1_glPopAttrib(void *_glfuncs);
+void gl1_1_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl1_1_glIndexMask(void *_glfuncs, GLuint mask);
+void gl1_1_glClearIndex(void *_glfuncs, GLfloat c);
+void gl1_1_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_1_glPushName(void *_glfuncs, GLuint name);
+void gl1_1_glPopName(void *_glfuncs);
+void gl1_1_glPassThrough(void *_glfuncs, GLfloat token);
+void gl1_1_glLoadName(void *_glfuncs, GLuint name);
+void gl1_1_glInitNames(void *_glfuncs);
+GLint gl1_1_glRenderMode(void *_glfuncs, GLenum mode);
+void gl1_1_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl1_1_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl1_1_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl1_1_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl1_1_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl1_1_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl1_1_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl1_1_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl1_1_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_1_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_1_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_1_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_1_glShadeModel(void *_glfuncs, GLenum mode);
+void gl1_1_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl1_1_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl1_1_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl1_1_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl1_1_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl1_1_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl1_1_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_1_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl1_1_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_1_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_1_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl1_1_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl1_1_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl1_1_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl1_1_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_1_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_1_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_1_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_1_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_1_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl1_1_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_1_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl1_1_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_1_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_1_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_1_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_1_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl1_1_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_1_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_1_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_1_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_1_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl1_1_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl1_1_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_1_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_1_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl1_1_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl1_1_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl1_1_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl1_1_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl1_1_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl1_1_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl1_1_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl1_1_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl1_1_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl1_1_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl1_1_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl1_1_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl1_1_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl1_1_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl1_1_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl1_1_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl1_1_glTexCoord1i(void *_glfuncs, GLint s);
+void gl1_1_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl1_1_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl1_1_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl1_1_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl1_1_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl1_1_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl1_1_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl1_1_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl1_1_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl1_1_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl1_1_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_1_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl1_1_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_1_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_1_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_1_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_1_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl1_1_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_1_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_1_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_1_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_1_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl1_1_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl1_1_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_1_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_1_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl1_1_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl1_1_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl1_1_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl1_1_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl1_1_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl1_1_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl1_1_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl1_1_glIndexs(void *_glfuncs, GLshort c);
+void gl1_1_glIndexiv(void *_glfuncs, const GLint* c);
+void gl1_1_glIndexi(void *_glfuncs, GLint c);
+void gl1_1_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl1_1_glIndexf(void *_glfuncs, GLfloat c);
+void gl1_1_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl1_1_glIndexd(void *_glfuncs, GLdouble c);
+void gl1_1_glEnd(void *_glfuncs);
+void gl1_1_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl1_1_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl1_1_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl1_1_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl1_1_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl1_1_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl1_1_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl1_1_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl1_1_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl1_1_glColor4iv(void *_glfuncs, const GLint* v);
+void gl1_1_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl1_1_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_1_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl1_1_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl1_1_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl1_1_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl1_1_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl1_1_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl1_1_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl1_1_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl1_1_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl1_1_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl1_1_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl1_1_glColor3iv(void *_glfuncs, const GLint* v);
+void gl1_1_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl1_1_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl1_1_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl1_1_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl1_1_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl1_1_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl1_1_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl1_1_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl1_1_glBegin(void *_glfuncs, GLenum mode);
+void gl1_1_glListBase(void *_glfuncs, GLuint base);
+GLuint gl1_1_glGenLists(void *_glfuncs, GLsizei range_);
+void gl1_1_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl1_1_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl1_1_glCallList(void *_glfuncs, GLuint list);
+void gl1_1_glEndList(void *_glfuncs);
+void gl1_1_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl1_1_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_1_glPopClientAttrib(void *_glfuncs);
+void gl1_1_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl1_1_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl1_1_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_1_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_1_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_1_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl1_1_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_1_glEnableClientState(void *_glfuncs, GLenum array);
+void gl1_1_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl1_1_glDisableClientState(void *_glfuncs, GLenum array);
+void gl1_1_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_1_glArrayElement(void *_glfuncs, GLint i);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/gl.go
new file mode 100644
index 000000000..268e1c083
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.1/gl.go
@@ -0,0 +1,2789 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 1.1 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl1_1_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 1.1 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 1.1 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ BITMAP = 0x1A00
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+
+ CLAMP = 0x2900
+ REPEAT = 0x2901
+)
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl1_1_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl1_1_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl1_1_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl1_1_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl1_1_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_1_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_1_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl1_1_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl1_1_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl1_1_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl1_1_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl1_1_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl1_1_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl1_1_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl1_1_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl1_1_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl1_1_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl1_1_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl1_1_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl1_1_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl1_1_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl1_1_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl1_1_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl1_1_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl1_1_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl1_1_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl1_1_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl1_1_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl1_1_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl1_1_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl1_1_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl1_1_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_1_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl1_1_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_1_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl1_1_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl1_1_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl1_1_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl1_1_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl1_1_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl1_1_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl1_1_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl1_1_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl1_1_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl1_1_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl1_1_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl1_1_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl1_1_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl1_1_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl1_1_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl1_1_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl1_1_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl1_1_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl1_1_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl1_1_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl1_1_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl1_1_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl1_1_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl1_1_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl1_1_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl1_1_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl1_1_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl1_1_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_1_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_1_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_1_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl1_1_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl1_1_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl1_1_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl1_1_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_1_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl1_1_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_1_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_1_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_1_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_1_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_1_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl1_1_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl1_1_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl1_1_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl1_1_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_1_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_1_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl1_1_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl1_1_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl1_1_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_1_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_1_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_1_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl1_1_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl1_1_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl1_1_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl1_1_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl1_1_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl1_1_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl1_1_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl1_1_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl1_1_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl1_1_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl1_1_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl1_1_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_1_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl1_1_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_1_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl1_1_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl1_1_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl1_1_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl1_1_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl1_1_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl1_1_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl1_1_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl1_1_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl1_1_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl1_1_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl1_1_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl1_1_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl1_1_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl1_1_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl1_1_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl1_1_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl1_1_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl1_1_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl1_1_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl1_1_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl1_1_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl1_1_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl1_1_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl1_1_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl1_1_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl1_1_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl1_1_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_1_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl1_1_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_1_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl1_1_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_1_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl1_1_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_1_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl1_1_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_1_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl1_1_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl1_1_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl1_1_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_1_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl1_1_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_1_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl1_1_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl1_1_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl1_1_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl1_1_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl1_1_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl1_1_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_1_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl1_1_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_1_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl1_1_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl1_1_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl1_1_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl1_1_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl1_1_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl1_1_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_1_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl1_1_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl1_1_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl1_1_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl1_1_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl1_1_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl1_1_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl1_1_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl1_1_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl1_1_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl1_1_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl1_1_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl1_1_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl1_1_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl1_1_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl1_1_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl1_1_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl1_1_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl1_1_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl1_1_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl1_1_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl1_1_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl1_1_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl1_1_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl1_1_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl1_1_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl1_1_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl1_1_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl1_1_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl1_1_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl1_1_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl1_1_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl1_1_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl1_1_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl1_1_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl1_1_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl1_1_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl1_1_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl1_1_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl1_1_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl1_1_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl1_1_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl1_1_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl1_1_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl1_1_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl1_1_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl1_1_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl1_1_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl1_1_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl1_1_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl1_1_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl1_1_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl1_1_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl1_1_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl1_1_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl1_1_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl1_1_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl1_1_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl1_1_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl1_1_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl1_1_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl1_1_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl1_1_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl1_1_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl1_1_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl1_1_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl1_1_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl1_1_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl1_1_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl1_1_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl1_1_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl1_1_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl1_1_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl1_1_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl1_1_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl1_1_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl1_1_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl1_1_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl1_1_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl1_1_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl1_1_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl1_1_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl1_1_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl1_1_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl1_1_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl1_1_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl1_1_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl1_1_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl1_1_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl1_1_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl1_1_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_1_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl1_1_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl1_1_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl1_1_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl1_1_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl1_1_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl1_1_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl1_1_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl1_1_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl1_1_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl1_1_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl1_1_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl1_1_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl1_1_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl1_1_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl1_1_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl1_1_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl1_1_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_1_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl1_1_glArrayElement(gl.funcs, C.GLint(i))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/funcs.cpp
new file mode 100644
index 000000000..328f40f85
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/funcs.cpp
@@ -0,0 +1,2250 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_1_2.h>
+
+#include "funcs.h"
+
+void *gl1_2_funcs() {
+ QOpenGLFunctions_1_2* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_1_2>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl1_2_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl1_2_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl1_2_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl1_2_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl1_2_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl1_2_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl1_2_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl1_2_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl1_2_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl1_2_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl1_2_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl1_2_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl1_2_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl1_2_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl1_2_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl1_2_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl1_2_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl1_2_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl1_2_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl1_2_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl1_2_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl1_2_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl1_2_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl1_2_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl1_2_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl1_2_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl1_2_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl1_2_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl1_2_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl1_2_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl1_2_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl1_2_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl1_2_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl1_2_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl1_2_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl1_2_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl1_2_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl1_2_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl1_2_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl1_2_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl1_2_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl1_2_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl1_2_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl1_2_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl1_2_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl1_2_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl1_2_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl1_2_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl1_2_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl1_2_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl1_2_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl1_2_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl1_2_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl1_2_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl1_2_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl1_2_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl1_2_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl1_2_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl1_2_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl1_2_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl1_2_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl1_2_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl1_2_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl1_2_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_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl1_2_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_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl1_2_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl1_2_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl1_2_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl1_2_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl1_2_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl1_2_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl1_2_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl1_2_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl1_2_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl1_2_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl1_2_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl1_2_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl1_2_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl1_2_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl1_2_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl1_2_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl1_2_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl1_2_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl1_2_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl1_2_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl1_2_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl1_2_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl1_2_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl1_2_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl1_2_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl1_2_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl1_2_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl1_2_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl1_2_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl1_2_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl1_2_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl1_2_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl1_2_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl1_2_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl1_2_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl1_2_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl1_2_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl1_2_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl1_2_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl1_2_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl1_2_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl1_2_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl1_2_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl1_2_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl1_2_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl1_2_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl1_2_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl1_2_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl1_2_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl1_2_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl1_2_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl1_2_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl1_2_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl1_2_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl1_2_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl1_2_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl1_2_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl1_2_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl1_2_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_2_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_2_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl1_2_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl1_2_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_2_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_2_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl1_2_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl1_2_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl1_2_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl1_2_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl1_2_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl1_2_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl1_2_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl1_2_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl1_2_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl1_2_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl1_2_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl1_2_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl1_2_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl1_2_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl1_2_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl1_2_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl1_2_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl1_2_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl1_2_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl1_2_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl1_2_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl1_2_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl1_2_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl1_2_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl1_2_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl1_2_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl1_2_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl1_2_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl1_2_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl1_2_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl1_2_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl1_2_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl1_2_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl1_2_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl1_2_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl1_2_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl1_2_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl1_2_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl1_2_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl1_2_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl1_2_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl1_2_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl1_2_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl1_2_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl1_2_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl1_2_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl1_2_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl1_2_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl1_2_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl1_2_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl1_2_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl1_2_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl1_2_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl1_2_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl1_2_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl1_2_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl1_2_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl1_2_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl1_2_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl1_2_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl1_2_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl1_2_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl1_2_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl1_2_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl1_2_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl1_2_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl1_2_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl1_2_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl1_2_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl1_2_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl1_2_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl1_2_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl1_2_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl1_2_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl1_2_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl1_2_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl1_2_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl1_2_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl1_2_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl1_2_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl1_2_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl1_2_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl1_2_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl1_2_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl1_2_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl1_2_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl1_2_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl1_2_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl1_2_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl1_2_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl1_2_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl1_2_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl1_2_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl1_2_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl1_2_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl1_2_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl1_2_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl1_2_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl1_2_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl1_2_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl1_2_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl1_2_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl1_2_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl1_2_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl1_2_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl1_2_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl1_2_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl1_2_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl1_2_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl1_2_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl1_2_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl1_2_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl1_2_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl1_2_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl1_2_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl1_2_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl1_2_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl1_2_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl1_2_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl1_2_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl1_2_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl1_2_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl1_2_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl1_2_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl1_2_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl1_2_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl1_2_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl1_2_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl1_2_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl1_2_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl1_2_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl1_2_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl1_2_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl1_2_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl1_2_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl1_2_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl1_2_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl1_2_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl1_2_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl1_2_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl1_2_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl1_2_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl1_2_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl1_2_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl1_2_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl1_2_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl1_2_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl1_2_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl1_2_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl1_2_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl1_2_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl1_2_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl1_2_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl1_2_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl1_2_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl1_2_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl1_2_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl1_2_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl1_2_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl1_2_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl1_2_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl1_2_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl1_2_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl1_2_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl1_2_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl1_2_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl1_2_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl1_2_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl1_2_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl1_2_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl1_2_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl1_2_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl1_2_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl1_2_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl1_2_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl1_2_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl1_2_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl1_2_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl1_2_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl1_2_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl1_2_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl1_2_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl1_2_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl1_2_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl1_2_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl1_2_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl1_2_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl1_2_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl1_2_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl1_2_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl1_2_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl1_2_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl1_2_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl1_2_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl1_2_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl1_2_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl1_2_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl1_2_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl1_2_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl1_2_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl1_2_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl1_2_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl1_2_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl1_2_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl1_2_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl1_2_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl1_2_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl1_2_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl1_2_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl1_2_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl1_2_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl1_2_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl1_2_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl1_2_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl1_2_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl1_2_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl1_2_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl1_2_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl1_2_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl1_2_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl1_2_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl1_2_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl1_2_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl1_2_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl1_2_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl1_2_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl1_2_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl1_2_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl1_2_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl1_2_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl1_2_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl1_2_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl1_2_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl1_2_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl1_2_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl1_2_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl1_2_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl1_2_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl1_2_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl1_2_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl1_2_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl1_2_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_1_2* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_2*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/funcs.h
new file mode 100644
index 000000000..958c34935
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/funcs.h
@@ -0,0 +1,414 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl1_2_funcs();
+
+void gl1_2_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_2_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl1_2_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl1_2_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl1_2_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl1_2_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_2_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_2_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_2_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl1_2_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl1_2_glGetError(void *_glfuncs);
+void gl1_2_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl1_2_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl1_2_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_2_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl1_2_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl1_2_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_2_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl1_2_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl1_2_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl1_2_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl1_2_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl1_2_glFlush(void *_glfuncs);
+void gl1_2_glFinish(void *_glfuncs);
+void gl1_2_glEnable(void *_glfuncs, GLenum cap);
+void gl1_2_glDisable(void *_glfuncs, GLenum cap);
+void gl1_2_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl1_2_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl1_2_glStencilMask(void *_glfuncs, GLuint mask);
+void gl1_2_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl1_2_glClearStencil(void *_glfuncs, GLint s);
+void gl1_2_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_2_glClear(void *_glfuncs, GLbitfield mask);
+void gl1_2_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl1_2_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_2_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_2_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_2_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_2_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_2_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_2_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_2_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_2_glPointSize(void *_glfuncs, GLfloat size);
+void gl1_2_glLineWidth(void *_glfuncs, GLfloat width);
+void gl1_2_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl1_2_glFrontFace(void *_glfuncs, GLenum mode);
+void gl1_2_glCullFace(void *_glfuncs, GLenum mode);
+void gl1_2_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl1_2_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl1_2_glIsTexture(void *_glfuncs, GLuint texture);
+void gl1_2_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl1_2_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl1_2_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl1_2_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_2_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_2_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_2_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl1_2_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl1_2_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl1_2_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl1_2_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl1_2_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl1_2_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_2_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);
+void gl1_2_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_2_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl1_2_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl1_2_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_2_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_2_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_2_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_2_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_2_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl1_2_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl1_2_glPushMatrix(void *_glfuncs);
+void gl1_2_glPopMatrix(void *_glfuncs);
+void gl1_2_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl1_2_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_2_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_2_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl1_2_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_2_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_2_glLoadIdentity(void *_glfuncs);
+void gl1_2_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl1_2_glIsList(void *_glfuncs, GLuint list);
+void gl1_2_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl1_2_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl1_2_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl1_2_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_2_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_2_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl1_2_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl1_2_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl1_2_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl1_2_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl1_2_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl1_2_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl1_2_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl1_2_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl1_2_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl1_2_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl1_2_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl1_2_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_2_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl1_2_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl1_2_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl1_2_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl1_2_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_2_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_2_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl1_2_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl1_2_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl1_2_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl1_2_glEvalPoint1(void *_glfuncs, GLint i);
+void gl1_2_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl1_2_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl1_2_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl1_2_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl1_2_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl1_2_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl1_2_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl1_2_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl1_2_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl1_2_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl1_2_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl1_2_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl1_2_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl1_2_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl1_2_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl1_2_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl1_2_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl1_2_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_2_glPopAttrib(void *_glfuncs);
+void gl1_2_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl1_2_glIndexMask(void *_glfuncs, GLuint mask);
+void gl1_2_glClearIndex(void *_glfuncs, GLfloat c);
+void gl1_2_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_2_glPushName(void *_glfuncs, GLuint name);
+void gl1_2_glPopName(void *_glfuncs);
+void gl1_2_glPassThrough(void *_glfuncs, GLfloat token);
+void gl1_2_glLoadName(void *_glfuncs, GLuint name);
+void gl1_2_glInitNames(void *_glfuncs);
+GLint gl1_2_glRenderMode(void *_glfuncs, GLenum mode);
+void gl1_2_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl1_2_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl1_2_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl1_2_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl1_2_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl1_2_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl1_2_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl1_2_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl1_2_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_2_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_2_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_2_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_2_glShadeModel(void *_glfuncs, GLenum mode);
+void gl1_2_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl1_2_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl1_2_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl1_2_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl1_2_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl1_2_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl1_2_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_2_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl1_2_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_2_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_2_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl1_2_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl1_2_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl1_2_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl1_2_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_2_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_2_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_2_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_2_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_2_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl1_2_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_2_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl1_2_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_2_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_2_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_2_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_2_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl1_2_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_2_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_2_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_2_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_2_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl1_2_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl1_2_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_2_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_2_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl1_2_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl1_2_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl1_2_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl1_2_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl1_2_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl1_2_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl1_2_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl1_2_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl1_2_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl1_2_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl1_2_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl1_2_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl1_2_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl1_2_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl1_2_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl1_2_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl1_2_glTexCoord1i(void *_glfuncs, GLint s);
+void gl1_2_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl1_2_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl1_2_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl1_2_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl1_2_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl1_2_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl1_2_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl1_2_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl1_2_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl1_2_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl1_2_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_2_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl1_2_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_2_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_2_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_2_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_2_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl1_2_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_2_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_2_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_2_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_2_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl1_2_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl1_2_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_2_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_2_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl1_2_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl1_2_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl1_2_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl1_2_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl1_2_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl1_2_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl1_2_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl1_2_glIndexs(void *_glfuncs, GLshort c);
+void gl1_2_glIndexiv(void *_glfuncs, const GLint* c);
+void gl1_2_glIndexi(void *_glfuncs, GLint c);
+void gl1_2_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl1_2_glIndexf(void *_glfuncs, GLfloat c);
+void gl1_2_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl1_2_glIndexd(void *_glfuncs, GLdouble c);
+void gl1_2_glEnd(void *_glfuncs);
+void gl1_2_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl1_2_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl1_2_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl1_2_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl1_2_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl1_2_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl1_2_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl1_2_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl1_2_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl1_2_glColor4iv(void *_glfuncs, const GLint* v);
+void gl1_2_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl1_2_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_2_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl1_2_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl1_2_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl1_2_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl1_2_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl1_2_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl1_2_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl1_2_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl1_2_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl1_2_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl1_2_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl1_2_glColor3iv(void *_glfuncs, const GLint* v);
+void gl1_2_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl1_2_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl1_2_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl1_2_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl1_2_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl1_2_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl1_2_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl1_2_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl1_2_glBegin(void *_glfuncs, GLenum mode);
+void gl1_2_glListBase(void *_glfuncs, GLuint base);
+GLuint gl1_2_glGenLists(void *_glfuncs, GLsizei range_);
+void gl1_2_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl1_2_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl1_2_glCallList(void *_glfuncs, GLuint list);
+void gl1_2_glEndList(void *_glfuncs);
+void gl1_2_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl1_2_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_2_glPopClientAttrib(void *_glfuncs);
+void gl1_2_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl1_2_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl1_2_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_2_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_2_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_2_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl1_2_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_2_glEnableClientState(void *_glfuncs, GLenum array);
+void gl1_2_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl1_2_glDisableClientState(void *_glfuncs, GLenum array);
+void gl1_2_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_2_glArrayElement(void *_glfuncs, GLint i);
+void gl1_2_glResetMinmax(void *_glfuncs, GLenum target);
+void gl1_2_glResetHistogram(void *_glfuncs, GLenum target);
+void gl1_2_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl1_2_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl1_2_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_2_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_2_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl1_2_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_2_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_2_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl1_2_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl1_2_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl1_2_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_2_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_2_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl1_2_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_2_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl1_2_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_2_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl1_2_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_2_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl1_2_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl1_2_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl1_2_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl1_2_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl1_2_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_2_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_2_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl1_2_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl1_2_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_2_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_2_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/gl.go
new file mode 100644
index 000000000..a3f089e74
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.2/gl.go
@@ -0,0 +1,3152 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 1.2 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl1_2_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 1.2 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 1.2 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+)
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl1_2_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl1_2_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl1_2_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl1_2_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl1_2_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl1_2_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl1_2_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl1_2_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl1_2_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl1_2_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl1_2_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl1_2_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl1_2_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl1_2_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl1_2_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl1_2_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl1_2_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl1_2_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl1_2_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl1_2_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl1_2_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl1_2_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl1_2_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl1_2_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl1_2_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl1_2_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl1_2_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl1_2_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl1_2_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl1_2_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl1_2_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl1_2_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl1_2_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl1_2_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl1_2_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl1_2_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl1_2_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl1_2_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl1_2_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl1_2_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl1_2_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl1_2_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl1_2_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl1_2_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl1_2_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl1_2_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl1_2_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl1_2_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl1_2_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl1_2_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl1_2_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl1_2_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl1_2_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl1_2_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl1_2_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl1_2_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl1_2_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl1_2_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_2_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_2_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_2_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl1_2_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl1_2_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl1_2_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl1_2_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_2_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl1_2_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_2_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl1_2_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl1_2_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl1_2_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl1_2_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl1_2_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl1_2_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl1_2_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_2_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl1_2_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl1_2_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl1_2_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl1_2_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl1_2_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl1_2_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl1_2_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl1_2_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl1_2_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl1_2_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl1_2_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl1_2_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_2_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl1_2_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_2_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl1_2_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl1_2_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl1_2_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl1_2_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl1_2_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl1_2_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl1_2_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl1_2_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl1_2_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl1_2_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl1_2_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl1_2_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl1_2_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl1_2_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl1_2_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl1_2_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl1_2_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl1_2_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl1_2_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl1_2_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl1_2_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl1_2_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl1_2_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl1_2_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl1_2_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl1_2_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl1_2_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_2_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl1_2_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_2_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl1_2_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_2_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl1_2_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl1_2_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl1_2_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl1_2_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl1_2_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_2_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl1_2_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_2_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl1_2_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl1_2_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl1_2_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl1_2_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl1_2_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl1_2_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_2_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl1_2_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_2_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl1_2_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl1_2_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl1_2_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl1_2_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl1_2_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl1_2_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_2_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl1_2_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl1_2_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl1_2_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl1_2_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl1_2_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl1_2_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl1_2_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl1_2_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl1_2_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl1_2_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl1_2_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl1_2_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl1_2_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl1_2_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl1_2_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl1_2_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl1_2_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl1_2_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl1_2_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl1_2_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl1_2_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl1_2_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl1_2_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl1_2_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl1_2_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl1_2_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl1_2_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl1_2_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl1_2_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl1_2_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl1_2_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl1_2_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl1_2_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl1_2_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl1_2_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl1_2_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl1_2_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl1_2_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl1_2_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl1_2_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl1_2_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl1_2_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl1_2_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl1_2_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl1_2_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl1_2_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl1_2_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl1_2_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl1_2_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl1_2_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl1_2_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl1_2_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl1_2_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl1_2_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl1_2_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl1_2_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl1_2_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl1_2_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl1_2_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl1_2_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl1_2_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl1_2_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl1_2_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl1_2_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl1_2_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl1_2_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl1_2_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl1_2_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl1_2_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl1_2_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl1_2_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl1_2_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl1_2_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl1_2_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl1_2_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl1_2_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl1_2_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl1_2_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl1_2_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl1_2_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl1_2_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl1_2_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl1_2_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl1_2_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl1_2_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl1_2_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl1_2_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl1_2_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl1_2_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl1_2_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_2_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl1_2_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl1_2_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl1_2_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl1_2_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl1_2_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl1_2_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl1_2_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl1_2_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl1_2_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl1_2_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl1_2_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl1_2_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl1_2_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl1_2_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl1_2_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl1_2_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl1_2_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl1_2_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl1_2_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl1_2_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl1_2_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl1_2_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl1_2_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl1_2_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl1_2_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl1_2_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl1_2_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl1_2_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_2_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_2_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_2_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/funcs.cpp
new file mode 100644
index 000000000..582d20907
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/funcs.cpp
@@ -0,0 +1,2526 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_1_3.h>
+
+#include "funcs.h"
+
+void *gl1_3_funcs() {
+ QOpenGLFunctions_1_3* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_1_3>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl1_3_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl1_3_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl1_3_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl1_3_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl1_3_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl1_3_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl1_3_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl1_3_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl1_3_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl1_3_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl1_3_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl1_3_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl1_3_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl1_3_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl1_3_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl1_3_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl1_3_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl1_3_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl1_3_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl1_3_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl1_3_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl1_3_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl1_3_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl1_3_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl1_3_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl1_3_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl1_3_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl1_3_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl1_3_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl1_3_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl1_3_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl1_3_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl1_3_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl1_3_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl1_3_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl1_3_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl1_3_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl1_3_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl1_3_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl1_3_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl1_3_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl1_3_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl1_3_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl1_3_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl1_3_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl1_3_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl1_3_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl1_3_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl1_3_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl1_3_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl1_3_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl1_3_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl1_3_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl1_3_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl1_3_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl1_3_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl1_3_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl1_3_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl1_3_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl1_3_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl1_3_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl1_3_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl1_3_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl1_3_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_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl1_3_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_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl1_3_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl1_3_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl1_3_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl1_3_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl1_3_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl1_3_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl1_3_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_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl1_3_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl1_3_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl1_3_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl1_3_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl1_3_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl1_3_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl1_3_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl1_3_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl1_3_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl1_3_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl1_3_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl1_3_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl1_3_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl1_3_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl1_3_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl1_3_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl1_3_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl1_3_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl1_3_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl1_3_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl1_3_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl1_3_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl1_3_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl1_3_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl1_3_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl1_3_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl1_3_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl1_3_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl1_3_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl1_3_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl1_3_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl1_3_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl1_3_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl1_3_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl1_3_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl1_3_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl1_3_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl1_3_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl1_3_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl1_3_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl1_3_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl1_3_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl1_3_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl1_3_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl1_3_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl1_3_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl1_3_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl1_3_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl1_3_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl1_3_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl1_3_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl1_3_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl1_3_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl1_3_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl1_3_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl1_3_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl1_3_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl1_3_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl1_3_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl1_3_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl1_3_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_3_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_3_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl1_3_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl1_3_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_3_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_3_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl1_3_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl1_3_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl1_3_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl1_3_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl1_3_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl1_3_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl1_3_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl1_3_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl1_3_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl1_3_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl1_3_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl1_3_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl1_3_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl1_3_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl1_3_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl1_3_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl1_3_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl1_3_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl1_3_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl1_3_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl1_3_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl1_3_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl1_3_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl1_3_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl1_3_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl1_3_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl1_3_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl1_3_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl1_3_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl1_3_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl1_3_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl1_3_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl1_3_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl1_3_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl1_3_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl1_3_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl1_3_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl1_3_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl1_3_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl1_3_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl1_3_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl1_3_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl1_3_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl1_3_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl1_3_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl1_3_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl1_3_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl1_3_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl1_3_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl1_3_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl1_3_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl1_3_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl1_3_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl1_3_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl1_3_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl1_3_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl1_3_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl1_3_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl1_3_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl1_3_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl1_3_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl1_3_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl1_3_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl1_3_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl1_3_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl1_3_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl1_3_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl1_3_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl1_3_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl1_3_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl1_3_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl1_3_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl1_3_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl1_3_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl1_3_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl1_3_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl1_3_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl1_3_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl1_3_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl1_3_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl1_3_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl1_3_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl1_3_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl1_3_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl1_3_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl1_3_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl1_3_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl1_3_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl1_3_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl1_3_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl1_3_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl1_3_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl1_3_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl1_3_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl1_3_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl1_3_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl1_3_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl1_3_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl1_3_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl1_3_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl1_3_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl1_3_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl1_3_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl1_3_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl1_3_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl1_3_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl1_3_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl1_3_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl1_3_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl1_3_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl1_3_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl1_3_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl1_3_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl1_3_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl1_3_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl1_3_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl1_3_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl1_3_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl1_3_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl1_3_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl1_3_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl1_3_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl1_3_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl1_3_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl1_3_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl1_3_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl1_3_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl1_3_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl1_3_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl1_3_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl1_3_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl1_3_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl1_3_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl1_3_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl1_3_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl1_3_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl1_3_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl1_3_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl1_3_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl1_3_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl1_3_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl1_3_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl1_3_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl1_3_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl1_3_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl1_3_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl1_3_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl1_3_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl1_3_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl1_3_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl1_3_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl1_3_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl1_3_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl1_3_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl1_3_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl1_3_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl1_3_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl1_3_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl1_3_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl1_3_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl1_3_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl1_3_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl1_3_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl1_3_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl1_3_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl1_3_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl1_3_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl1_3_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl1_3_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl1_3_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl1_3_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl1_3_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl1_3_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl1_3_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl1_3_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl1_3_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl1_3_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl1_3_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl1_3_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl1_3_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl1_3_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl1_3_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl1_3_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl1_3_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl1_3_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl1_3_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl1_3_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl1_3_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl1_3_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl1_3_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl1_3_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl1_3_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl1_3_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl1_3_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl1_3_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl1_3_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl1_3_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl1_3_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl1_3_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl1_3_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl1_3_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl1_3_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl1_3_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl1_3_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl1_3_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl1_3_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl1_3_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl1_3_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl1_3_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl1_3_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl1_3_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl1_3_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl1_3_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl1_3_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl1_3_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl1_3_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl1_3_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl1_3_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl1_3_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl1_3_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl1_3_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl1_3_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl1_3_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl1_3_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl1_3_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl1_3_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl1_3_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl1_3_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl1_3_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl1_3_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl1_3_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl1_3_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl1_3_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl1_3_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl1_3_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl1_3_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl1_3_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl1_3_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl1_3_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl1_3_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl1_3_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl1_3_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl1_3_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl1_3_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl1_3_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl1_3_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl1_3_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl1_3_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl1_3_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl1_3_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl1_3_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl1_3_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl1_3_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl1_3_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl1_3_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl1_3_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl1_3_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl1_3_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl1_3_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl1_3_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl1_3_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl1_3_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl1_3_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl1_3_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl1_3_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl1_3_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl1_3_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl1_3_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl1_3_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl1_3_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl1_3_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl1_3_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl1_3_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl1_3_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl1_3_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl1_3_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl1_3_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl1_3_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl1_3_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_1_3* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_3*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/funcs.h
new file mode 100644
index 000000000..9d3944383
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/funcs.h
@@ -0,0 +1,460 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl1_3_funcs();
+
+void gl1_3_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_3_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl1_3_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl1_3_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl1_3_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl1_3_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_3_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_3_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_3_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl1_3_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl1_3_glGetError(void *_glfuncs);
+void gl1_3_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl1_3_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl1_3_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_3_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl1_3_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl1_3_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_3_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl1_3_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl1_3_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl1_3_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl1_3_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl1_3_glFlush(void *_glfuncs);
+void gl1_3_glFinish(void *_glfuncs);
+void gl1_3_glEnable(void *_glfuncs, GLenum cap);
+void gl1_3_glDisable(void *_glfuncs, GLenum cap);
+void gl1_3_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl1_3_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl1_3_glStencilMask(void *_glfuncs, GLuint mask);
+void gl1_3_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl1_3_glClearStencil(void *_glfuncs, GLint s);
+void gl1_3_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_3_glClear(void *_glfuncs, GLbitfield mask);
+void gl1_3_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl1_3_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_3_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_3_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_3_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_3_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_3_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_3_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_3_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_3_glPointSize(void *_glfuncs, GLfloat size);
+void gl1_3_glLineWidth(void *_glfuncs, GLfloat width);
+void gl1_3_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl1_3_glFrontFace(void *_glfuncs, GLenum mode);
+void gl1_3_glCullFace(void *_glfuncs, GLenum mode);
+void gl1_3_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl1_3_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl1_3_glIsTexture(void *_glfuncs, GLuint texture);
+void gl1_3_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl1_3_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl1_3_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl1_3_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_3_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_3_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_3_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl1_3_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl1_3_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl1_3_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl1_3_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl1_3_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl1_3_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_3_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);
+void gl1_3_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_3_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl1_3_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl1_3_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_3_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl1_3_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl1_3_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl1_3_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);
+void gl1_3_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl1_3_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl1_3_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl1_3_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl1_3_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl1_3_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_3_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_3_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_3_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_3_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl1_3_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl1_3_glPushMatrix(void *_glfuncs);
+void gl1_3_glPopMatrix(void *_glfuncs);
+void gl1_3_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl1_3_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_3_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_3_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl1_3_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_3_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_3_glLoadIdentity(void *_glfuncs);
+void gl1_3_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl1_3_glIsList(void *_glfuncs, GLuint list);
+void gl1_3_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl1_3_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl1_3_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl1_3_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_3_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_3_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl1_3_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl1_3_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl1_3_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl1_3_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl1_3_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl1_3_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl1_3_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl1_3_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl1_3_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl1_3_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl1_3_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl1_3_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_3_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl1_3_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl1_3_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl1_3_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl1_3_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_3_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_3_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl1_3_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl1_3_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl1_3_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl1_3_glEvalPoint1(void *_glfuncs, GLint i);
+void gl1_3_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl1_3_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl1_3_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl1_3_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl1_3_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl1_3_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl1_3_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl1_3_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl1_3_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl1_3_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl1_3_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl1_3_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl1_3_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl1_3_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl1_3_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl1_3_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl1_3_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl1_3_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_3_glPopAttrib(void *_glfuncs);
+void gl1_3_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl1_3_glIndexMask(void *_glfuncs, GLuint mask);
+void gl1_3_glClearIndex(void *_glfuncs, GLfloat c);
+void gl1_3_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_3_glPushName(void *_glfuncs, GLuint name);
+void gl1_3_glPopName(void *_glfuncs);
+void gl1_3_glPassThrough(void *_glfuncs, GLfloat token);
+void gl1_3_glLoadName(void *_glfuncs, GLuint name);
+void gl1_3_glInitNames(void *_glfuncs);
+GLint gl1_3_glRenderMode(void *_glfuncs, GLenum mode);
+void gl1_3_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl1_3_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl1_3_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl1_3_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl1_3_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl1_3_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl1_3_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl1_3_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl1_3_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_3_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_3_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_3_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_3_glShadeModel(void *_glfuncs, GLenum mode);
+void gl1_3_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl1_3_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl1_3_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl1_3_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl1_3_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl1_3_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl1_3_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_3_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl1_3_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_3_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_3_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl1_3_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl1_3_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl1_3_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl1_3_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_3_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_3_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_3_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_3_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_3_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl1_3_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_3_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl1_3_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_3_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_3_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_3_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_3_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl1_3_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_3_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_3_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_3_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_3_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl1_3_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl1_3_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_3_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_3_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl1_3_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl1_3_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl1_3_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl1_3_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl1_3_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl1_3_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl1_3_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl1_3_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl1_3_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl1_3_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl1_3_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl1_3_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl1_3_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl1_3_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl1_3_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl1_3_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl1_3_glTexCoord1i(void *_glfuncs, GLint s);
+void gl1_3_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl1_3_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl1_3_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl1_3_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl1_3_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl1_3_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl1_3_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl1_3_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl1_3_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl1_3_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl1_3_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_3_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl1_3_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_3_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_3_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_3_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_3_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl1_3_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_3_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_3_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_3_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_3_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl1_3_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl1_3_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_3_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_3_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl1_3_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl1_3_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl1_3_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl1_3_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl1_3_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl1_3_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl1_3_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl1_3_glIndexs(void *_glfuncs, GLshort c);
+void gl1_3_glIndexiv(void *_glfuncs, const GLint* c);
+void gl1_3_glIndexi(void *_glfuncs, GLint c);
+void gl1_3_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl1_3_glIndexf(void *_glfuncs, GLfloat c);
+void gl1_3_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl1_3_glIndexd(void *_glfuncs, GLdouble c);
+void gl1_3_glEnd(void *_glfuncs);
+void gl1_3_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl1_3_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl1_3_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl1_3_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl1_3_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl1_3_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl1_3_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl1_3_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl1_3_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl1_3_glColor4iv(void *_glfuncs, const GLint* v);
+void gl1_3_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl1_3_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_3_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl1_3_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl1_3_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl1_3_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl1_3_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl1_3_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl1_3_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl1_3_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl1_3_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl1_3_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl1_3_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl1_3_glColor3iv(void *_glfuncs, const GLint* v);
+void gl1_3_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl1_3_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl1_3_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl1_3_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl1_3_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl1_3_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl1_3_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl1_3_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl1_3_glBegin(void *_glfuncs, GLenum mode);
+void gl1_3_glListBase(void *_glfuncs, GLuint base);
+GLuint gl1_3_glGenLists(void *_glfuncs, GLsizei range_);
+void gl1_3_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl1_3_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl1_3_glCallList(void *_glfuncs, GLuint list);
+void gl1_3_glEndList(void *_glfuncs);
+void gl1_3_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl1_3_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_3_glPopClientAttrib(void *_glfuncs);
+void gl1_3_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl1_3_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl1_3_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_3_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_3_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_3_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl1_3_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_3_glEnableClientState(void *_glfuncs, GLenum array);
+void gl1_3_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl1_3_glDisableClientState(void *_glfuncs, GLenum array);
+void gl1_3_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_3_glArrayElement(void *_glfuncs, GLint i);
+void gl1_3_glResetMinmax(void *_glfuncs, GLenum target);
+void gl1_3_glResetHistogram(void *_glfuncs, GLenum target);
+void gl1_3_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl1_3_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl1_3_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_3_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_3_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl1_3_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_3_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_3_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl1_3_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl1_3_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl1_3_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_3_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_3_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl1_3_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_3_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl1_3_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_3_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl1_3_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_3_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl1_3_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl1_3_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl1_3_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl1_3_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl1_3_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_3_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_3_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl1_3_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl1_3_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_3_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_3_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl1_3_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_3_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_3_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_3_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_3_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_3_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl1_3_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_3_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl1_3_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_3_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl1_3_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_3_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl1_3_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_3_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl1_3_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_3_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl1_3_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_3_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl1_3_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_3_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl1_3_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_3_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl1_3_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_3_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl1_3_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_3_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl1_3_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_3_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl1_3_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_3_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl1_3_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_3_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl1_3_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_3_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl1_3_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_3_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl1_3_glClientActiveTexture(void *_glfuncs, GLenum texture);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/gl.go
new file mode 100644
index 000000000..6df8965a3
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.3/gl.go
@@ -0,0 +1,3571 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 1.3 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl1_3_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 1.3 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 1.3 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+)
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl1_3_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl1_3_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl1_3_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl1_3_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl1_3_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl1_3_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl1_3_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl1_3_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl1_3_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl1_3_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl1_3_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl1_3_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl1_3_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl1_3_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl1_3_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl1_3_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl1_3_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl1_3_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl1_3_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl1_3_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl1_3_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl1_3_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl1_3_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl1_3_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl1_3_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl1_3_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl1_3_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl1_3_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl1_3_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl1_3_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl1_3_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl1_3_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl1_3_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl1_3_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl1_3_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl1_3_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl1_3_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl1_3_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl1_3_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl1_3_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl1_3_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl1_3_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl1_3_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl1_3_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl1_3_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl1_3_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl1_3_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl1_3_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl1_3_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl1_3_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl1_3_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl1_3_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl1_3_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl1_3_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl1_3_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl1_3_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl1_3_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl1_3_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl1_3_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl1_3_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_3_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_3_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_3_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl1_3_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl1_3_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl1_3_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl1_3_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_3_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl1_3_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_3_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl1_3_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl1_3_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl1_3_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl1_3_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl1_3_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl1_3_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl1_3_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_3_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl1_3_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl1_3_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl1_3_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl1_3_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl1_3_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl1_3_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl1_3_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl1_3_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl1_3_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl1_3_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl1_3_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl1_3_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_3_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl1_3_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_3_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl1_3_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl1_3_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl1_3_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl1_3_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl1_3_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl1_3_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl1_3_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl1_3_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl1_3_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl1_3_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl1_3_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl1_3_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl1_3_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl1_3_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl1_3_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl1_3_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl1_3_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl1_3_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl1_3_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl1_3_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl1_3_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl1_3_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl1_3_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl1_3_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl1_3_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl1_3_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl1_3_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_3_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl1_3_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_3_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl1_3_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_3_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl1_3_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl1_3_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl1_3_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl1_3_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl1_3_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_3_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl1_3_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_3_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl1_3_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl1_3_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl1_3_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl1_3_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl1_3_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl1_3_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_3_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl1_3_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_3_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl1_3_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl1_3_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl1_3_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl1_3_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl1_3_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl1_3_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_3_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl1_3_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl1_3_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl1_3_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl1_3_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl1_3_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl1_3_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl1_3_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl1_3_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl1_3_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl1_3_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl1_3_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl1_3_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl1_3_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl1_3_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl1_3_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl1_3_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl1_3_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl1_3_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl1_3_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl1_3_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl1_3_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl1_3_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl1_3_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl1_3_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl1_3_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl1_3_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl1_3_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl1_3_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl1_3_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl1_3_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl1_3_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl1_3_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl1_3_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl1_3_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl1_3_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl1_3_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl1_3_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl1_3_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl1_3_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl1_3_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl1_3_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl1_3_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl1_3_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl1_3_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl1_3_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl1_3_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl1_3_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl1_3_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl1_3_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl1_3_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl1_3_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl1_3_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl1_3_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl1_3_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl1_3_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl1_3_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl1_3_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl1_3_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl1_3_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl1_3_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl1_3_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl1_3_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl1_3_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl1_3_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl1_3_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl1_3_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl1_3_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl1_3_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl1_3_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl1_3_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl1_3_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl1_3_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl1_3_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl1_3_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl1_3_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl1_3_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl1_3_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl1_3_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl1_3_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl1_3_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl1_3_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl1_3_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl1_3_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl1_3_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl1_3_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl1_3_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl1_3_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl1_3_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl1_3_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl1_3_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl1_3_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl1_3_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl1_3_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl1_3_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl1_3_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl1_3_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl1_3_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl1_3_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl1_3_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl1_3_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl1_3_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl1_3_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl1_3_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl1_3_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl1_3_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl1_3_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl1_3_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl1_3_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl1_3_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl1_3_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl1_3_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl1_3_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl1_3_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl1_3_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl1_3_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl1_3_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl1_3_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl1_3_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_3_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_3_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_3_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl1_3_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl1_3_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl1_3_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl1_3_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl1_3_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl1_3_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl1_3_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl1_3_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl1_3_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl1_3_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl1_3_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl1_3_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl1_3_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl1_3_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl1_3_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_3_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl1_3_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl1_3_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl1_3_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl1_3_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl1_3_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl1_3_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl1_3_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl1_3_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl1_3_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl1_3_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/funcs.cpp
new file mode 100644
index 000000000..0aed105f5
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/funcs.cpp
@@ -0,0 +1,2790 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_1_4.h>
+
+#include "funcs.h"
+
+void *gl1_4_funcs() {
+ QOpenGLFunctions_1_4* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_1_4>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl1_4_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl1_4_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl1_4_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl1_4_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl1_4_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl1_4_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl1_4_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl1_4_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl1_4_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl1_4_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl1_4_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl1_4_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl1_4_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl1_4_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl1_4_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl1_4_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl1_4_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl1_4_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl1_4_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl1_4_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl1_4_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl1_4_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl1_4_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl1_4_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl1_4_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl1_4_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl1_4_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl1_4_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl1_4_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl1_4_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl1_4_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl1_4_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl1_4_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl1_4_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl1_4_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl1_4_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl1_4_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl1_4_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl1_4_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl1_4_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl1_4_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl1_4_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl1_4_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl1_4_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl1_4_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl1_4_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl1_4_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl1_4_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl1_4_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl1_4_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl1_4_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl1_4_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl1_4_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl1_4_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl1_4_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl1_4_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl1_4_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl1_4_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl1_4_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl1_4_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl1_4_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl1_4_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl1_4_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl1_4_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_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl1_4_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_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl1_4_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl1_4_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl1_4_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl1_4_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl1_4_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl1_4_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl1_4_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_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl1_4_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl1_4_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl1_4_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl1_4_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl1_4_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl1_4_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl1_4_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl1_4_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl1_4_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl1_4_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl1_4_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl1_4_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl1_4_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl1_4_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl1_4_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl1_4_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl1_4_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl1_4_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl1_4_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl1_4_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl1_4_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl1_4_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl1_4_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl1_4_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl1_4_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl1_4_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl1_4_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl1_4_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl1_4_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl1_4_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl1_4_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl1_4_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl1_4_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl1_4_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl1_4_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl1_4_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl1_4_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl1_4_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl1_4_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl1_4_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl1_4_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl1_4_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl1_4_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl1_4_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl1_4_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl1_4_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl1_4_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl1_4_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl1_4_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl1_4_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl1_4_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl1_4_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl1_4_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl1_4_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl1_4_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl1_4_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl1_4_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl1_4_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl1_4_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl1_4_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl1_4_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl1_4_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl1_4_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl1_4_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl1_4_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl1_4_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl1_4_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_4_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_4_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl1_4_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl1_4_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_4_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_4_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl1_4_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl1_4_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl1_4_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl1_4_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl1_4_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl1_4_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl1_4_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl1_4_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl1_4_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl1_4_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl1_4_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl1_4_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl1_4_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl1_4_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl1_4_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl1_4_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl1_4_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl1_4_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl1_4_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl1_4_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl1_4_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl1_4_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl1_4_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl1_4_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl1_4_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl1_4_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl1_4_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl1_4_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl1_4_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl1_4_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl1_4_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl1_4_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl1_4_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl1_4_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl1_4_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl1_4_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl1_4_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl1_4_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl1_4_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl1_4_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl1_4_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl1_4_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl1_4_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl1_4_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl1_4_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl1_4_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl1_4_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl1_4_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl1_4_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl1_4_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl1_4_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl1_4_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl1_4_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl1_4_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl1_4_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl1_4_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl1_4_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl1_4_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl1_4_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl1_4_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl1_4_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl1_4_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl1_4_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl1_4_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl1_4_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl1_4_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl1_4_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl1_4_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl1_4_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl1_4_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl1_4_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl1_4_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl1_4_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl1_4_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl1_4_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl1_4_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl1_4_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl1_4_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl1_4_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl1_4_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl1_4_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl1_4_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl1_4_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl1_4_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl1_4_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl1_4_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl1_4_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl1_4_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl1_4_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl1_4_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl1_4_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl1_4_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl1_4_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl1_4_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl1_4_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl1_4_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl1_4_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl1_4_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl1_4_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl1_4_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl1_4_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl1_4_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl1_4_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl1_4_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl1_4_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl1_4_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl1_4_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl1_4_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl1_4_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl1_4_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl1_4_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl1_4_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl1_4_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl1_4_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl1_4_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl1_4_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl1_4_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl1_4_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl1_4_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl1_4_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl1_4_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl1_4_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl1_4_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl1_4_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl1_4_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl1_4_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl1_4_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl1_4_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl1_4_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl1_4_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl1_4_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl1_4_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl1_4_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl1_4_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl1_4_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl1_4_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl1_4_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl1_4_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl1_4_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl1_4_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl1_4_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl1_4_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl1_4_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl1_4_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl1_4_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl1_4_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl1_4_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl1_4_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl1_4_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl1_4_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl1_4_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl1_4_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl1_4_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl1_4_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl1_4_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl1_4_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl1_4_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl1_4_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl1_4_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl1_4_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl1_4_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl1_4_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl1_4_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl1_4_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl1_4_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl1_4_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl1_4_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl1_4_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl1_4_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl1_4_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl1_4_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl1_4_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl1_4_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl1_4_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl1_4_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl1_4_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl1_4_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl1_4_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl1_4_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl1_4_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl1_4_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl1_4_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl1_4_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl1_4_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl1_4_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl1_4_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl1_4_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl1_4_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl1_4_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl1_4_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl1_4_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl1_4_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl1_4_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl1_4_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl1_4_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl1_4_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl1_4_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl1_4_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl1_4_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl1_4_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl1_4_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl1_4_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl1_4_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl1_4_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl1_4_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl1_4_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl1_4_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl1_4_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl1_4_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl1_4_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl1_4_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl1_4_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl1_4_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl1_4_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl1_4_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl1_4_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl1_4_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl1_4_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl1_4_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl1_4_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl1_4_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl1_4_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl1_4_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl1_4_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl1_4_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl1_4_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl1_4_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl1_4_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl1_4_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl1_4_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl1_4_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl1_4_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl1_4_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl1_4_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl1_4_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl1_4_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl1_4_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl1_4_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl1_4_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl1_4_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl1_4_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl1_4_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl1_4_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl1_4_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl1_4_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl1_4_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl1_4_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl1_4_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl1_4_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl1_4_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl1_4_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl1_4_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl1_4_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl1_4_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl1_4_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl1_4_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl1_4_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl1_4_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl1_4_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl1_4_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl1_4_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl1_4_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl1_4_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl1_4_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl1_4_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl1_4_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl1_4_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl1_4_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl1_4_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl1_4_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl1_4_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl1_4_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl1_4_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl1_4_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl1_4_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl1_4_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl1_4_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl1_4_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl1_4_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl1_4_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl1_4_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl1_4_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl1_4_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl1_4_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl1_4_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl1_4_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl1_4_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl1_4_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl1_4_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl1_4_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl1_4_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl1_4_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl1_4_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl1_4_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl1_4_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl1_4_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl1_4_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl1_4_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl1_4_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl1_4_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl1_4_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl1_4_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl1_4_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl1_4_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl1_4_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl1_4_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl1_4_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl1_4_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl1_4_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl1_4_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl1_4_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl1_4_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl1_4_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl1_4_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl1_4_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl1_4_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl1_4_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_1_4* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_4*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/funcs.h
new file mode 100644
index 000000000..ea657e080
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/funcs.h
@@ -0,0 +1,504 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl1_4_funcs();
+
+void gl1_4_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_4_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl1_4_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl1_4_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl1_4_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl1_4_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_4_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_4_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_4_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl1_4_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl1_4_glGetError(void *_glfuncs);
+void gl1_4_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl1_4_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl1_4_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_4_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl1_4_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl1_4_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_4_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl1_4_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl1_4_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl1_4_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl1_4_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl1_4_glFlush(void *_glfuncs);
+void gl1_4_glFinish(void *_glfuncs);
+void gl1_4_glEnable(void *_glfuncs, GLenum cap);
+void gl1_4_glDisable(void *_glfuncs, GLenum cap);
+void gl1_4_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl1_4_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl1_4_glStencilMask(void *_glfuncs, GLuint mask);
+void gl1_4_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl1_4_glClearStencil(void *_glfuncs, GLint s);
+void gl1_4_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_4_glClear(void *_glfuncs, GLbitfield mask);
+void gl1_4_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl1_4_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_4_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_4_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_4_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_4_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_4_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_4_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_4_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_4_glPointSize(void *_glfuncs, GLfloat size);
+void gl1_4_glLineWidth(void *_glfuncs, GLfloat width);
+void gl1_4_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl1_4_glFrontFace(void *_glfuncs, GLenum mode);
+void gl1_4_glCullFace(void *_glfuncs, GLenum mode);
+void gl1_4_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl1_4_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl1_4_glIsTexture(void *_glfuncs, GLuint texture);
+void gl1_4_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl1_4_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl1_4_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl1_4_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_4_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_4_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_4_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl1_4_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl1_4_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl1_4_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl1_4_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl1_4_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl1_4_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_4_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);
+void gl1_4_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_4_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl1_4_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl1_4_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_4_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl1_4_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl1_4_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl1_4_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);
+void gl1_4_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl1_4_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl1_4_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl1_4_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl1_4_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl1_4_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_4_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl1_4_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_4_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_4_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl1_4_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl1_4_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_4_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_4_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_4_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_4_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl1_4_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl1_4_glPushMatrix(void *_glfuncs);
+void gl1_4_glPopMatrix(void *_glfuncs);
+void gl1_4_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl1_4_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_4_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_4_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl1_4_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_4_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_4_glLoadIdentity(void *_glfuncs);
+void gl1_4_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl1_4_glIsList(void *_glfuncs, GLuint list);
+void gl1_4_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl1_4_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl1_4_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl1_4_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_4_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_4_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl1_4_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl1_4_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl1_4_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl1_4_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl1_4_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl1_4_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl1_4_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl1_4_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl1_4_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl1_4_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl1_4_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl1_4_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_4_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl1_4_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl1_4_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl1_4_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl1_4_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_4_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_4_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl1_4_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl1_4_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl1_4_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl1_4_glEvalPoint1(void *_glfuncs, GLint i);
+void gl1_4_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl1_4_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl1_4_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl1_4_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl1_4_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl1_4_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl1_4_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl1_4_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl1_4_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl1_4_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl1_4_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl1_4_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl1_4_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl1_4_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl1_4_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl1_4_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl1_4_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl1_4_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_4_glPopAttrib(void *_glfuncs);
+void gl1_4_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl1_4_glIndexMask(void *_glfuncs, GLuint mask);
+void gl1_4_glClearIndex(void *_glfuncs, GLfloat c);
+void gl1_4_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_4_glPushName(void *_glfuncs, GLuint name);
+void gl1_4_glPopName(void *_glfuncs);
+void gl1_4_glPassThrough(void *_glfuncs, GLfloat token);
+void gl1_4_glLoadName(void *_glfuncs, GLuint name);
+void gl1_4_glInitNames(void *_glfuncs);
+GLint gl1_4_glRenderMode(void *_glfuncs, GLenum mode);
+void gl1_4_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl1_4_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl1_4_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl1_4_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl1_4_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl1_4_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl1_4_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl1_4_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl1_4_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_4_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_4_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_4_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_4_glShadeModel(void *_glfuncs, GLenum mode);
+void gl1_4_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl1_4_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl1_4_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl1_4_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl1_4_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl1_4_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl1_4_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_4_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl1_4_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_4_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_4_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl1_4_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl1_4_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl1_4_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl1_4_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_4_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_4_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_4_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_4_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_4_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl1_4_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_4_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl1_4_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_4_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_4_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_4_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_4_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl1_4_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_4_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_4_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_4_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_4_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl1_4_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl1_4_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_4_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_4_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl1_4_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl1_4_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl1_4_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl1_4_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl1_4_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl1_4_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl1_4_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl1_4_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl1_4_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl1_4_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl1_4_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl1_4_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl1_4_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl1_4_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl1_4_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl1_4_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl1_4_glTexCoord1i(void *_glfuncs, GLint s);
+void gl1_4_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl1_4_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl1_4_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl1_4_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl1_4_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl1_4_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl1_4_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl1_4_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl1_4_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl1_4_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl1_4_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_4_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl1_4_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_4_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_4_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_4_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_4_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl1_4_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_4_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_4_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_4_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_4_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl1_4_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl1_4_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_4_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_4_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl1_4_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl1_4_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl1_4_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl1_4_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl1_4_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl1_4_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl1_4_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl1_4_glIndexs(void *_glfuncs, GLshort c);
+void gl1_4_glIndexiv(void *_glfuncs, const GLint* c);
+void gl1_4_glIndexi(void *_glfuncs, GLint c);
+void gl1_4_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl1_4_glIndexf(void *_glfuncs, GLfloat c);
+void gl1_4_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl1_4_glIndexd(void *_glfuncs, GLdouble c);
+void gl1_4_glEnd(void *_glfuncs);
+void gl1_4_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl1_4_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl1_4_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl1_4_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl1_4_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl1_4_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl1_4_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl1_4_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl1_4_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl1_4_glColor4iv(void *_glfuncs, const GLint* v);
+void gl1_4_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl1_4_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_4_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl1_4_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl1_4_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl1_4_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl1_4_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl1_4_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl1_4_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl1_4_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl1_4_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl1_4_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl1_4_glColor3iv(void *_glfuncs, const GLint* v);
+void gl1_4_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl1_4_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl1_4_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl1_4_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl1_4_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl1_4_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl1_4_glBegin(void *_glfuncs, GLenum mode);
+void gl1_4_glListBase(void *_glfuncs, GLuint base);
+GLuint gl1_4_glGenLists(void *_glfuncs, GLsizei range_);
+void gl1_4_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl1_4_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl1_4_glCallList(void *_glfuncs, GLuint list);
+void gl1_4_glEndList(void *_glfuncs);
+void gl1_4_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl1_4_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_4_glPopClientAttrib(void *_glfuncs);
+void gl1_4_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl1_4_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl1_4_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_4_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_4_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_4_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl1_4_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_4_glEnableClientState(void *_glfuncs, GLenum array);
+void gl1_4_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl1_4_glDisableClientState(void *_glfuncs, GLenum array);
+void gl1_4_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_4_glArrayElement(void *_glfuncs, GLint i);
+void gl1_4_glResetMinmax(void *_glfuncs, GLenum target);
+void gl1_4_glResetHistogram(void *_glfuncs, GLenum target);
+void gl1_4_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl1_4_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl1_4_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_4_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_4_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl1_4_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_4_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_4_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl1_4_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl1_4_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl1_4_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_4_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_4_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl1_4_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_4_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl1_4_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_4_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl1_4_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_4_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl1_4_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl1_4_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl1_4_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl1_4_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl1_4_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_4_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_4_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl1_4_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl1_4_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_4_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_4_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl1_4_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_4_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_4_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_4_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_4_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_4_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl1_4_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_4_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl1_4_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_4_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl1_4_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_4_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl1_4_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_4_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl1_4_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_4_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl1_4_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_4_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl1_4_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_4_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl1_4_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_4_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl1_4_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_4_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl1_4_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_4_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl1_4_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_4_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl1_4_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_4_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl1_4_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_4_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl1_4_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_4_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl1_4_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_4_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl1_4_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl1_4_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_4_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl1_4_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_4_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_4_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_4_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_4_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl1_4_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl1_4_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_4_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_4_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_4_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl1_4_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl1_4_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl1_4_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl1_4_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl1_4_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl1_4_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl1_4_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl1_4_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl1_4_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl1_4_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl1_4_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl1_4_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl1_4_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl1_4_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl1_4_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl1_4_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_4_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl1_4_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl1_4_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl1_4_glFogCoordf(void *_glfuncs, GLfloat coord);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/gl.go
new file mode 100644
index 000000000..6ddbc2441
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.4/gl.go
@@ -0,0 +1,3892 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 1.4 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl1_4_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 1.4 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 1.4 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORDINATE = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+)
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl1_4_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl1_4_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl1_4_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl1_4_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl1_4_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl1_4_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl1_4_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl1_4_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl1_4_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl1_4_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl1_4_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl1_4_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl1_4_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl1_4_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl1_4_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl1_4_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl1_4_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl1_4_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl1_4_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl1_4_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl1_4_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl1_4_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl1_4_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl1_4_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl1_4_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl1_4_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl1_4_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl1_4_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl1_4_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl1_4_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl1_4_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl1_4_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl1_4_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl1_4_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl1_4_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl1_4_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl1_4_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl1_4_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl1_4_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl1_4_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl1_4_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl1_4_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl1_4_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl1_4_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl1_4_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl1_4_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl1_4_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl1_4_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl1_4_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl1_4_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl1_4_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl1_4_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl1_4_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl1_4_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl1_4_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl1_4_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl1_4_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl1_4_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl1_4_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl1_4_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl1_4_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl1_4_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl1_4_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl1_4_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl1_4_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl1_4_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_4_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_4_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_4_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl1_4_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl1_4_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl1_4_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl1_4_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_4_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl1_4_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_4_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl1_4_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl1_4_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl1_4_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl1_4_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl1_4_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl1_4_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl1_4_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_4_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl1_4_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl1_4_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl1_4_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl1_4_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl1_4_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl1_4_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl1_4_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl1_4_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl1_4_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl1_4_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl1_4_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl1_4_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_4_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl1_4_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_4_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl1_4_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl1_4_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl1_4_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl1_4_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl1_4_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl1_4_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl1_4_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl1_4_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl1_4_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl1_4_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl1_4_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl1_4_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl1_4_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl1_4_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl1_4_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl1_4_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl1_4_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl1_4_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl1_4_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl1_4_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl1_4_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl1_4_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl1_4_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl1_4_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl1_4_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl1_4_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl1_4_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_4_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl1_4_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_4_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl1_4_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_4_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl1_4_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl1_4_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl1_4_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl1_4_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl1_4_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_4_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl1_4_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_4_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl1_4_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl1_4_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl1_4_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl1_4_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl1_4_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl1_4_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_4_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl1_4_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_4_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl1_4_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl1_4_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl1_4_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl1_4_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl1_4_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl1_4_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_4_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl1_4_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl1_4_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl1_4_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl1_4_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl1_4_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl1_4_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl1_4_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl1_4_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl1_4_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl1_4_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl1_4_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl1_4_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl1_4_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl1_4_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl1_4_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl1_4_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl1_4_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl1_4_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl1_4_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl1_4_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl1_4_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl1_4_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl1_4_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl1_4_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl1_4_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl1_4_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl1_4_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl1_4_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl1_4_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl1_4_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl1_4_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl1_4_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl1_4_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl1_4_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl1_4_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl1_4_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl1_4_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl1_4_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl1_4_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl1_4_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl1_4_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl1_4_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl1_4_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl1_4_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl1_4_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl1_4_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl1_4_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl1_4_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl1_4_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl1_4_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl1_4_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl1_4_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl1_4_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl1_4_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl1_4_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl1_4_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl1_4_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl1_4_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl1_4_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl1_4_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl1_4_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl1_4_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl1_4_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl1_4_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl1_4_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl1_4_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl1_4_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl1_4_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl1_4_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl1_4_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl1_4_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl1_4_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl1_4_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl1_4_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl1_4_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl1_4_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl1_4_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl1_4_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl1_4_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl1_4_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl1_4_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl1_4_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl1_4_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl1_4_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl1_4_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl1_4_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl1_4_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl1_4_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl1_4_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl1_4_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl1_4_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl1_4_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl1_4_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl1_4_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl1_4_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl1_4_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl1_4_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl1_4_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl1_4_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl1_4_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl1_4_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl1_4_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl1_4_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl1_4_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl1_4_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl1_4_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl1_4_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl1_4_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl1_4_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl1_4_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl1_4_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl1_4_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl1_4_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl1_4_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl1_4_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl1_4_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl1_4_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl1_4_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_4_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_4_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl1_4_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl1_4_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl1_4_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl1_4_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl1_4_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl1_4_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl1_4_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl1_4_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl1_4_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl1_4_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl1_4_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl1_4_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl1_4_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl1_4_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl1_4_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl1_4_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl1_4_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl1_4_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl1_4_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl1_4_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl1_4_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl1_4_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl1_4_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl1_4_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl1_4_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl1_4_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl1_4_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl1_4_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl1_4_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl1_4_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl1_4_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl1_4_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl1_4_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl1_4_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl1_4_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl1_4_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl1_4_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl1_4_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl1_4_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl1_4_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl1_4_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl1_4_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_4_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl1_4_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl1_4_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl1_4_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_4_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl1_4_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl1_4_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl1_4_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl1_4_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/funcs.cpp
new file mode 100644
index 000000000..6158162fc
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/funcs.cpp
@@ -0,0 +1,2892 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_1_5.h>
+
+#include "funcs.h"
+
+void *gl1_5_funcs() {
+ QOpenGLFunctions_1_5* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_1_5>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl1_5_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl1_5_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl1_5_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl1_5_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl1_5_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl1_5_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl1_5_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl1_5_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl1_5_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl1_5_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl1_5_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl1_5_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl1_5_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl1_5_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl1_5_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl1_5_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl1_5_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl1_5_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl1_5_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl1_5_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl1_5_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl1_5_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl1_5_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl1_5_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl1_5_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl1_5_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl1_5_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl1_5_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl1_5_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl1_5_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl1_5_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl1_5_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl1_5_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl1_5_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl1_5_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl1_5_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl1_5_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl1_5_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl1_5_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl1_5_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl1_5_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl1_5_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl1_5_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl1_5_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl1_5_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl1_5_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl1_5_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl1_5_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl1_5_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl1_5_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl1_5_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl1_5_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl1_5_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl1_5_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl1_5_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl1_5_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl1_5_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl1_5_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl1_5_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl1_5_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl1_5_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl1_5_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl1_5_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl1_5_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_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl1_5_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_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl1_5_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl1_5_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl1_5_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl1_5_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl1_5_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl1_5_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl1_5_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_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl1_5_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl1_5_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl1_5_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl1_5_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl1_5_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl1_5_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl1_5_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl1_5_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl1_5_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl1_5_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl1_5_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl1_5_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl1_5_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl1_5_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl1_5_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl1_5_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl1_5_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl1_5_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl1_5_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl1_5_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl1_5_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl1_5_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl1_5_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl1_5_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl1_5_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl1_5_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl1_5_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl1_5_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl1_5_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl1_5_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl1_5_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl1_5_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl1_5_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl1_5_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl1_5_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl1_5_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl1_5_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl1_5_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl1_5_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl1_5_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl1_5_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl1_5_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl1_5_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl1_5_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl1_5_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl1_5_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl1_5_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl1_5_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl1_5_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl1_5_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl1_5_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl1_5_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl1_5_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl1_5_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl1_5_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl1_5_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl1_5_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl1_5_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl1_5_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl1_5_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl1_5_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl1_5_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl1_5_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl1_5_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl1_5_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl1_5_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl1_5_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl1_5_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl1_5_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl1_5_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl1_5_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl1_5_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl1_5_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl1_5_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl1_5_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl1_5_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl1_5_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl1_5_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl1_5_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl1_5_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl1_5_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl1_5_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl1_5_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl1_5_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_5_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl1_5_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl1_5_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl1_5_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_5_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl1_5_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl1_5_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl1_5_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl1_5_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl1_5_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl1_5_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl1_5_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl1_5_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl1_5_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl1_5_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl1_5_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl1_5_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl1_5_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl1_5_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl1_5_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl1_5_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl1_5_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl1_5_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl1_5_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl1_5_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl1_5_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl1_5_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl1_5_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl1_5_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl1_5_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl1_5_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl1_5_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl1_5_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl1_5_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl1_5_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl1_5_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl1_5_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl1_5_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl1_5_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl1_5_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl1_5_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl1_5_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl1_5_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl1_5_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl1_5_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl1_5_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl1_5_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl1_5_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl1_5_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl1_5_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl1_5_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl1_5_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl1_5_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl1_5_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl1_5_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl1_5_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl1_5_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl1_5_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl1_5_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl1_5_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl1_5_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl1_5_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl1_5_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl1_5_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl1_5_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl1_5_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl1_5_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl1_5_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl1_5_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl1_5_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl1_5_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl1_5_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl1_5_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl1_5_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl1_5_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl1_5_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl1_5_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl1_5_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl1_5_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl1_5_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl1_5_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl1_5_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl1_5_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl1_5_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl1_5_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl1_5_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl1_5_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl1_5_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl1_5_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl1_5_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl1_5_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl1_5_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl1_5_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl1_5_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl1_5_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl1_5_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl1_5_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl1_5_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl1_5_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl1_5_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl1_5_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl1_5_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl1_5_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl1_5_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl1_5_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl1_5_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl1_5_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl1_5_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl1_5_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl1_5_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl1_5_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl1_5_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl1_5_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl1_5_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl1_5_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl1_5_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl1_5_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl1_5_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl1_5_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl1_5_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl1_5_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl1_5_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl1_5_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl1_5_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl1_5_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl1_5_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl1_5_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl1_5_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl1_5_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl1_5_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl1_5_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl1_5_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl1_5_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl1_5_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl1_5_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl1_5_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl1_5_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl1_5_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl1_5_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl1_5_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl1_5_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl1_5_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl1_5_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl1_5_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl1_5_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl1_5_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl1_5_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl1_5_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl1_5_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl1_5_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl1_5_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl1_5_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl1_5_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl1_5_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl1_5_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl1_5_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl1_5_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl1_5_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl1_5_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl1_5_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl1_5_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl1_5_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl1_5_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl1_5_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl1_5_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl1_5_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl1_5_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl1_5_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl1_5_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl1_5_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl1_5_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl1_5_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl1_5_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl1_5_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl1_5_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl1_5_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl1_5_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl1_5_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl1_5_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl1_5_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl1_5_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl1_5_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl1_5_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl1_5_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl1_5_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl1_5_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl1_5_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl1_5_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl1_5_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl1_5_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl1_5_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl1_5_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl1_5_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl1_5_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl1_5_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl1_5_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl1_5_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl1_5_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl1_5_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl1_5_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl1_5_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl1_5_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl1_5_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl1_5_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl1_5_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl1_5_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl1_5_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl1_5_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl1_5_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl1_5_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl1_5_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl1_5_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl1_5_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl1_5_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl1_5_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl1_5_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl1_5_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl1_5_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl1_5_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl1_5_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl1_5_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl1_5_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl1_5_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl1_5_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl1_5_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl1_5_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl1_5_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl1_5_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl1_5_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl1_5_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl1_5_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl1_5_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl1_5_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl1_5_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl1_5_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl1_5_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl1_5_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl1_5_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl1_5_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl1_5_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl1_5_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl1_5_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl1_5_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl1_5_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl1_5_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl1_5_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl1_5_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl1_5_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl1_5_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl1_5_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl1_5_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl1_5_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl1_5_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl1_5_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl1_5_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl1_5_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl1_5_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl1_5_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl1_5_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl1_5_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl1_5_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl1_5_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl1_5_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl1_5_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl1_5_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl1_5_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl1_5_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl1_5_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl1_5_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl1_5_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl1_5_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl1_5_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl1_5_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl1_5_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl1_5_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl1_5_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl1_5_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl1_5_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl1_5_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl1_5_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl1_5_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl1_5_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl1_5_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl1_5_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl1_5_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl1_5_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl1_5_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl1_5_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl1_5_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl1_5_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl1_5_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl1_5_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl1_5_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl1_5_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl1_5_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl1_5_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl1_5_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl1_5_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl1_5_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl1_5_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl1_5_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl1_5_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl1_5_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl1_5_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl1_5_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl1_5_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl1_5_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl1_5_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl1_5_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl1_5_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl1_5_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl1_5_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl1_5_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl1_5_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl1_5_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl1_5_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl1_5_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl1_5_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl1_5_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl1_5_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl1_5_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl1_5_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl1_5_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_1_5* _qglfuncs = reinterpret_cast<QOpenGLFunctions_1_5*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/funcs.h
new file mode 100644
index 000000000..d971f2dc3
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/funcs.h
@@ -0,0 +1,521 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl1_5_funcs();
+
+void gl1_5_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_5_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl1_5_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl1_5_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl1_5_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl1_5_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_5_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_5_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_5_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl1_5_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl1_5_glGetError(void *_glfuncs);
+void gl1_5_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl1_5_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl1_5_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl1_5_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl1_5_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl1_5_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_5_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl1_5_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl1_5_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl1_5_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl1_5_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl1_5_glFlush(void *_glfuncs);
+void gl1_5_glFinish(void *_glfuncs);
+void gl1_5_glEnable(void *_glfuncs, GLenum cap);
+void gl1_5_glDisable(void *_glfuncs, GLenum cap);
+void gl1_5_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl1_5_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl1_5_glStencilMask(void *_glfuncs, GLuint mask);
+void gl1_5_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl1_5_glClearStencil(void *_glfuncs, GLint s);
+void gl1_5_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_5_glClear(void *_glfuncs, GLbitfield mask);
+void gl1_5_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl1_5_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_5_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_5_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_5_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_5_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_5_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_5_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_5_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_5_glPointSize(void *_glfuncs, GLfloat size);
+void gl1_5_glLineWidth(void *_glfuncs, GLfloat width);
+void gl1_5_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl1_5_glFrontFace(void *_glfuncs, GLenum mode);
+void gl1_5_glCullFace(void *_glfuncs, GLenum mode);
+void gl1_5_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl1_5_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl1_5_glIsTexture(void *_glfuncs, GLuint texture);
+void gl1_5_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl1_5_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl1_5_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl1_5_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_5_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_5_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_5_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl1_5_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl1_5_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl1_5_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl1_5_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl1_5_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl1_5_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_5_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);
+void gl1_5_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_5_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl1_5_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl1_5_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_5_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl1_5_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl1_5_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl1_5_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);
+void gl1_5_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl1_5_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl1_5_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl1_5_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl1_5_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl1_5_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_5_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl1_5_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_5_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_5_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl1_5_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl1_5_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl1_5_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl1_5_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl1_5_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl1_5_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl1_5_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl1_5_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl1_5_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl1_5_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl1_5_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl1_5_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl1_5_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_5_glEndQuery(void *_glfuncs, GLenum target);
+void gl1_5_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl1_5_glIsQuery(void *_glfuncs, GLuint id);
+void gl1_5_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl1_5_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl1_5_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_5_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_5_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_5_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_5_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl1_5_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl1_5_glPushMatrix(void *_glfuncs);
+void gl1_5_glPopMatrix(void *_glfuncs);
+void gl1_5_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl1_5_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_5_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_5_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl1_5_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_5_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_5_glLoadIdentity(void *_glfuncs);
+void gl1_5_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl1_5_glIsList(void *_glfuncs, GLuint list);
+void gl1_5_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl1_5_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl1_5_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl1_5_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_5_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_5_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl1_5_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl1_5_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl1_5_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl1_5_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl1_5_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl1_5_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl1_5_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl1_5_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl1_5_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl1_5_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl1_5_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl1_5_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl1_5_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl1_5_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl1_5_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl1_5_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl1_5_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_5_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_5_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl1_5_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl1_5_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl1_5_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl1_5_glEvalPoint1(void *_glfuncs, GLint i);
+void gl1_5_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl1_5_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl1_5_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl1_5_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl1_5_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl1_5_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl1_5_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl1_5_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl1_5_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl1_5_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl1_5_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl1_5_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl1_5_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl1_5_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl1_5_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl1_5_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl1_5_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl1_5_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_5_glPopAttrib(void *_glfuncs);
+void gl1_5_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl1_5_glIndexMask(void *_glfuncs, GLuint mask);
+void gl1_5_glClearIndex(void *_glfuncs, GLfloat c);
+void gl1_5_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_5_glPushName(void *_glfuncs, GLuint name);
+void gl1_5_glPopName(void *_glfuncs);
+void gl1_5_glPassThrough(void *_glfuncs, GLfloat token);
+void gl1_5_glLoadName(void *_glfuncs, GLuint name);
+void gl1_5_glInitNames(void *_glfuncs);
+GLint gl1_5_glRenderMode(void *_glfuncs, GLenum mode);
+void gl1_5_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl1_5_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl1_5_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl1_5_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl1_5_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl1_5_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl1_5_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl1_5_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl1_5_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_5_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl1_5_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_5_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl1_5_glShadeModel(void *_glfuncs, GLenum mode);
+void gl1_5_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl1_5_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl1_5_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl1_5_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl1_5_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl1_5_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl1_5_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_5_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl1_5_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_5_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_5_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl1_5_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl1_5_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl1_5_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl1_5_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl1_5_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl1_5_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl1_5_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl1_5_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl1_5_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl1_5_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_5_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl1_5_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_5_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_5_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_5_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_5_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl1_5_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_5_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_5_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_5_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_5_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl1_5_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl1_5_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_5_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_5_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl1_5_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl1_5_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl1_5_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl1_5_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl1_5_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl1_5_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl1_5_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl1_5_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl1_5_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl1_5_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl1_5_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl1_5_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl1_5_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl1_5_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl1_5_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl1_5_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl1_5_glTexCoord1i(void *_glfuncs, GLint s);
+void gl1_5_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl1_5_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl1_5_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl1_5_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl1_5_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl1_5_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl1_5_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl1_5_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl1_5_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl1_5_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl1_5_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl1_5_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl1_5_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl1_5_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl1_5_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl1_5_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_5_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl1_5_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_5_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_5_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_5_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_5_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl1_5_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl1_5_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_5_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_5_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl1_5_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl1_5_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl1_5_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl1_5_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl1_5_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl1_5_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl1_5_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl1_5_glIndexs(void *_glfuncs, GLshort c);
+void gl1_5_glIndexiv(void *_glfuncs, const GLint* c);
+void gl1_5_glIndexi(void *_glfuncs, GLint c);
+void gl1_5_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl1_5_glIndexf(void *_glfuncs, GLfloat c);
+void gl1_5_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl1_5_glIndexd(void *_glfuncs, GLdouble c);
+void gl1_5_glEnd(void *_glfuncs);
+void gl1_5_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl1_5_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl1_5_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl1_5_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl1_5_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl1_5_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl1_5_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl1_5_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl1_5_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl1_5_glColor4iv(void *_glfuncs, const GLint* v);
+void gl1_5_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl1_5_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl1_5_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl1_5_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl1_5_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl1_5_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl1_5_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl1_5_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl1_5_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl1_5_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl1_5_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl1_5_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl1_5_glColor3iv(void *_glfuncs, const GLint* v);
+void gl1_5_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl1_5_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl1_5_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl1_5_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl1_5_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl1_5_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl1_5_glBegin(void *_glfuncs, GLenum mode);
+void gl1_5_glListBase(void *_glfuncs, GLuint base);
+GLuint gl1_5_glGenLists(void *_glfuncs, GLsizei range_);
+void gl1_5_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl1_5_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl1_5_glCallList(void *_glfuncs, GLuint list);
+void gl1_5_glEndList(void *_glfuncs);
+void gl1_5_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl1_5_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl1_5_glPopClientAttrib(void *_glfuncs);
+void gl1_5_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl1_5_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl1_5_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_5_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_5_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_5_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl1_5_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_5_glEnableClientState(void *_glfuncs, GLenum array);
+void gl1_5_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl1_5_glDisableClientState(void *_glfuncs, GLenum array);
+void gl1_5_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_5_glArrayElement(void *_glfuncs, GLint i);
+void gl1_5_glResetMinmax(void *_glfuncs, GLenum target);
+void gl1_5_glResetHistogram(void *_glfuncs, GLenum target);
+void gl1_5_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl1_5_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl1_5_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_5_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_5_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl1_5_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_5_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_5_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl1_5_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl1_5_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl1_5_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_5_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_5_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl1_5_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl1_5_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl1_5_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_5_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl1_5_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_5_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl1_5_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl1_5_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl1_5_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl1_5_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl1_5_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl1_5_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl1_5_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl1_5_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl1_5_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl1_5_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl1_5_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl1_5_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_5_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_5_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl1_5_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl1_5_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_5_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl1_5_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_5_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl1_5_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_5_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl1_5_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_5_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl1_5_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_5_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl1_5_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_5_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl1_5_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_5_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl1_5_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_5_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl1_5_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_5_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl1_5_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_5_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl1_5_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_5_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl1_5_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_5_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl1_5_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl1_5_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl1_5_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl1_5_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl1_5_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl1_5_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl1_5_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl1_5_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl1_5_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl1_5_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl1_5_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl1_5_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl1_5_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl1_5_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl1_5_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl1_5_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl1_5_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl1_5_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl1_5_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl1_5_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_5_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl1_5_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl1_5_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl1_5_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl1_5_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl1_5_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl1_5_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl1_5_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl1_5_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl1_5_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl1_5_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl1_5_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl1_5_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl1_5_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl1_5_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl1_5_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl1_5_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl1_5_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl1_5_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl1_5_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl1_5_glFogCoordf(void *_glfuncs, GLfloat coord);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/gl.go
new file mode 100644
index 000000000..463f66f40
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/1.5/gl.go
@@ -0,0 +1,4237 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 1.5 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl1_5_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 1.5 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 1.5 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ SAMPLES_PASSED = 0x8914
+)
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl1_5_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl1_5_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl1_5_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl1_5_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl1_5_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl1_5_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl1_5_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl1_5_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl1_5_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl1_5_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl1_5_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl1_5_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl1_5_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl1_5_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl1_5_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl1_5_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl1_5_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl1_5_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl1_5_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl1_5_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl1_5_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl1_5_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl1_5_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl1_5_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl1_5_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl1_5_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl1_5_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl1_5_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl1_5_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl1_5_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl1_5_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl1_5_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl1_5_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl1_5_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl1_5_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl1_5_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl1_5_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl1_5_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl1_5_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl1_5_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl1_5_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl1_5_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl1_5_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl1_5_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl1_5_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl1_5_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl1_5_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl1_5_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl1_5_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl1_5_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl1_5_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl1_5_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl1_5_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl1_5_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl1_5_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl1_5_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl1_5_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl1_5_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl1_5_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl1_5_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl1_5_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl1_5_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl1_5_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl1_5_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl1_5_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl1_5_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl1_5_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl1_5_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl1_5_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl1_5_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl1_5_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl1_5_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl1_5_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl1_5_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl1_5_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl1_5_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl1_5_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl1_5_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_5_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_5_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl1_5_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl1_5_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl1_5_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl1_5_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl1_5_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl1_5_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl1_5_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_5_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl1_5_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl1_5_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl1_5_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl1_5_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl1_5_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl1_5_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl1_5_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_5_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl1_5_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl1_5_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl1_5_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl1_5_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl1_5_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl1_5_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl1_5_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl1_5_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl1_5_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl1_5_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl1_5_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl1_5_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_5_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl1_5_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl1_5_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl1_5_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl1_5_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl1_5_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl1_5_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl1_5_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl1_5_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl1_5_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl1_5_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl1_5_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl1_5_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl1_5_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl1_5_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl1_5_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl1_5_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl1_5_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl1_5_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl1_5_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl1_5_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl1_5_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl1_5_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl1_5_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl1_5_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl1_5_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl1_5_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl1_5_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl1_5_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl1_5_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl1_5_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl1_5_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl1_5_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl1_5_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl1_5_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl1_5_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl1_5_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl1_5_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl1_5_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl1_5_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl1_5_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl1_5_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl1_5_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl1_5_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl1_5_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl1_5_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl1_5_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl1_5_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl1_5_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl1_5_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl1_5_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl1_5_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl1_5_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl1_5_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl1_5_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl1_5_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl1_5_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl1_5_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl1_5_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl1_5_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl1_5_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl1_5_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl1_5_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl1_5_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl1_5_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl1_5_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl1_5_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl1_5_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl1_5_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl1_5_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl1_5_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl1_5_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl1_5_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl1_5_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl1_5_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl1_5_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl1_5_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl1_5_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl1_5_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl1_5_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl1_5_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl1_5_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl1_5_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl1_5_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl1_5_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl1_5_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl1_5_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl1_5_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl1_5_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl1_5_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl1_5_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl1_5_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl1_5_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl1_5_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl1_5_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl1_5_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl1_5_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl1_5_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl1_5_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl1_5_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl1_5_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl1_5_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl1_5_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl1_5_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl1_5_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl1_5_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl1_5_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl1_5_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl1_5_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl1_5_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl1_5_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl1_5_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl1_5_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl1_5_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl1_5_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl1_5_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl1_5_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl1_5_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl1_5_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl1_5_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl1_5_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl1_5_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl1_5_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl1_5_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl1_5_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl1_5_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl1_5_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl1_5_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl1_5_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl1_5_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl1_5_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl1_5_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl1_5_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl1_5_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl1_5_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl1_5_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl1_5_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl1_5_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl1_5_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl1_5_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl1_5_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl1_5_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl1_5_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl1_5_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl1_5_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl1_5_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl1_5_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl1_5_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl1_5_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl1_5_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl1_5_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl1_5_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl1_5_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl1_5_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl1_5_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl1_5_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl1_5_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl1_5_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl1_5_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl1_5_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl1_5_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl1_5_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl1_5_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl1_5_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl1_5_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl1_5_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl1_5_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl1_5_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl1_5_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl1_5_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl1_5_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl1_5_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl1_5_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl1_5_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl1_5_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl1_5_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl1_5_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl1_5_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl1_5_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl1_5_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl1_5_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl1_5_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl1_5_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl1_5_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl1_5_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl1_5_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl1_5_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl1_5_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl1_5_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl1_5_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl1_5_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl1_5_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl1_5_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl1_5_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl1_5_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl1_5_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl1_5_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl1_5_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl1_5_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl1_5_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl1_5_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl1_5_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl1_5_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl1_5_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl1_5_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl1_5_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl1_5_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl1_5_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl1_5_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl1_5_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl1_5_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl1_5_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl1_5_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl1_5_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl1_5_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl1_5_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl1_5_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl1_5_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl1_5_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl1_5_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl1_5_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl1_5_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl1_5_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl1_5_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl1_5_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl1_5_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl1_5_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl1_5_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl1_5_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl1_5_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/funcs.cpp
new file mode 100644
index 000000000..622f59045
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/funcs.cpp
@@ -0,0 +1,3444 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_2_0.h>
+
+#include "funcs.h"
+
+void *gl2_0_funcs() {
+ QOpenGLFunctions_2_0* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_2_0>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl2_0_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl2_0_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl2_0_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl2_0_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl2_0_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl2_0_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl2_0_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl2_0_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl2_0_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl2_0_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl2_0_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl2_0_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl2_0_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl2_0_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl2_0_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl2_0_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl2_0_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl2_0_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl2_0_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl2_0_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl2_0_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl2_0_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl2_0_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl2_0_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl2_0_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl2_0_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl2_0_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl2_0_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl2_0_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl2_0_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl2_0_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl2_0_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl2_0_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl2_0_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl2_0_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl2_0_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl2_0_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl2_0_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl2_0_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl2_0_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl2_0_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl2_0_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl2_0_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl2_0_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl2_0_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl2_0_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl2_0_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl2_0_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl2_0_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl2_0_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl2_0_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl2_0_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl2_0_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl2_0_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl2_0_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl2_0_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl2_0_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl2_0_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl2_0_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl2_0_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl2_0_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl2_0_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl2_0_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl2_0_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_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl2_0_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_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl2_0_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl2_0_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl2_0_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl2_0_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl2_0_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl2_0_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl2_0_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_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl2_0_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl2_0_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl2_0_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl2_0_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl2_0_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl2_0_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl2_0_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl2_0_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl2_0_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl2_0_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl2_0_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl2_0_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl2_0_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl2_0_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl2_0_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl2_0_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl2_0_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl2_0_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl2_0_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl2_0_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl2_0_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl2_0_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl2_0_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl2_0_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl2_0_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl2_0_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl2_0_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl2_0_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl2_0_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl2_0_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl2_0_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl2_0_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl2_0_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl2_0_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl2_0_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl2_0_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl2_0_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl2_0_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl2_0_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl2_0_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl2_0_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl2_0_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl2_0_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl2_0_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl2_0_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl2_0_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl2_0_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl2_0_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl2_0_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl2_0_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl2_0_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl2_0_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl2_0_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl2_0_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl2_0_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl2_0_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl2_0_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl2_0_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl2_0_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl2_0_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl2_0_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl2_0_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl2_0_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl2_0_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl2_0_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl2_0_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl2_0_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl2_0_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl2_0_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl2_0_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl2_0_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl2_0_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl2_0_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl2_0_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl2_0_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl2_0_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl2_0_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl2_0_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl2_0_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl2_0_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl2_0_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl2_0_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl2_0_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl2_0_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl2_0_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl2_0_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl2_0_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl2_0_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl2_0_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl2_0_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl2_0_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl2_0_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl2_0_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl2_0_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl2_0_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl2_0_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl2_0_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl2_0_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl2_0_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl2_0_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl2_0_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl2_0_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl2_0_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl2_0_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl2_0_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl2_0_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl2_0_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl2_0_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl2_0_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl2_0_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl2_0_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl2_0_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl2_0_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl2_0_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl2_0_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl2_0_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl2_0_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl2_0_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl2_0_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl2_0_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl2_0_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl2_0_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl2_0_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl2_0_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl2_0_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl2_0_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl2_0_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl2_0_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl2_0_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl2_0_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl2_0_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl2_0_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl2_0_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl2_0_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl2_0_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl2_0_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl2_0_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl2_0_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl2_0_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl2_0_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl2_0_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl2_0_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl2_0_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl2_0_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl2_0_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl2_0_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl2_0_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl2_0_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl2_0_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl2_0_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl2_0_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl2_0_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl2_0_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl2_0_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl2_0_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl2_0_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl2_0_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl2_0_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl2_0_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl2_0_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl2_0_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl2_0_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl2_0_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl2_0_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl2_0_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl2_0_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl2_0_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl2_0_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl2_0_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl2_0_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl2_0_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl2_0_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl2_0_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl2_0_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl2_0_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl2_0_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl2_0_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl2_0_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl2_0_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl2_0_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl2_0_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl2_0_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl2_0_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl2_0_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl2_0_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl2_0_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl2_0_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl2_0_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl2_0_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl2_0_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl2_0_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl2_0_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl2_0_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl2_0_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl2_0_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl2_0_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl2_0_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl2_0_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl2_0_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl2_0_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl2_0_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl2_0_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl2_0_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl2_0_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl2_0_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl2_0_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl2_0_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl2_0_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl2_0_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl2_0_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl2_0_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl2_0_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl2_0_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl2_0_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl2_0_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl2_0_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl2_0_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl2_0_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl2_0_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl2_0_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl2_0_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl2_0_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl2_0_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl2_0_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl2_0_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl2_0_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl2_0_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl2_0_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl2_0_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl2_0_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl2_0_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl2_0_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl2_0_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl2_0_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl2_0_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl2_0_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl2_0_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl2_0_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl2_0_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl2_0_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl2_0_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl2_0_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl2_0_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl2_0_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl2_0_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl2_0_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl2_0_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl2_0_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl2_0_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl2_0_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl2_0_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl2_0_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl2_0_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl2_0_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl2_0_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl2_0_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl2_0_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl2_0_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl2_0_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl2_0_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl2_0_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl2_0_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl2_0_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl2_0_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl2_0_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl2_0_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl2_0_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl2_0_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl2_0_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl2_0_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl2_0_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl2_0_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl2_0_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl2_0_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl2_0_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl2_0_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl2_0_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl2_0_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl2_0_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl2_0_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl2_0_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl2_0_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl2_0_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl2_0_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl2_0_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl2_0_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl2_0_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl2_0_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl2_0_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl2_0_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl2_0_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl2_0_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl2_0_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl2_0_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl2_0_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl2_0_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl2_0_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl2_0_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl2_0_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl2_0_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl2_0_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl2_0_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl2_0_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl2_0_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl2_0_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl2_0_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl2_0_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl2_0_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl2_0_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl2_0_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl2_0_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl2_0_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl2_0_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl2_0_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl2_0_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl2_0_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl2_0_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl2_0_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl2_0_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl2_0_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl2_0_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl2_0_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl2_0_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl2_0_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl2_0_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl2_0_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl2_0_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl2_0_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl2_0_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl2_0_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl2_0_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl2_0_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl2_0_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl2_0_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl2_0_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl2_0_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl2_0_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl2_0_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl2_0_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl2_0_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl2_0_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl2_0_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl2_0_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl2_0_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl2_0_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl2_0_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl2_0_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl2_0_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl2_0_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl2_0_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl2_0_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl2_0_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl2_0_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl2_0_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl2_0_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl2_0_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl2_0_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl2_0_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl2_0_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl2_0_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl2_0_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl2_0_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl2_0_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl2_0_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl2_0_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl2_0_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl2_0_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl2_0_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl2_0_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl2_0_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl2_0_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl2_0_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl2_0_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl2_0_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl2_0_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl2_0_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl2_0_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl2_0_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl2_0_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl2_0_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl2_0_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl2_0_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl2_0_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl2_0_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl2_0_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl2_0_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl2_0_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl2_0_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl2_0_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl2_0_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl2_0_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl2_0_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl2_0_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl2_0_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl2_0_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl2_0_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl2_0_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl2_0_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl2_0_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl2_0_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl2_0_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl2_0_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl2_0_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl2_0_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl2_0_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl2_0_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl2_0_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl2_0_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl2_0_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl2_0_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl2_0_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl2_0_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl2_0_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl2_0_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl2_0_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl2_0_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl2_0_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl2_0_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl2_0_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl2_0_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl2_0_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl2_0_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl2_0_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl2_0_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl2_0_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl2_0_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl2_0_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl2_0_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl2_0_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl2_0_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl2_0_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl2_0_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl2_0_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl2_0_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl2_0_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl2_0_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl2_0_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl2_0_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl2_0_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl2_0_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl2_0_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl2_0_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl2_0_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl2_0_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl2_0_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl2_0_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl2_0_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl2_0_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl2_0_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl2_0_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl2_0_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl2_0_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl2_0_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl2_0_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl2_0_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl2_0_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl2_0_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl2_0_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl2_0_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl2_0_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl2_0_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl2_0_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl2_0_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
+void gl2_0_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4usv(index, v);
+}
+
+void gl2_0_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4uiv(index, v);
+}
+
+void gl2_0_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4ubv(index, v);
+}
+
+void gl2_0_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4sv(index, v);
+}
+
+void gl2_0_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4s(index, x, y, z, w);
+}
+
+void gl2_0_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4iv(index, v);
+}
+
+void gl2_0_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, v);
+}
+
+void gl2_0_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gl2_0_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4dv(index, v);
+}
+
+void gl2_0_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4d(index, x, y, z, w);
+}
+
+void gl2_0_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4bv(index, v);
+}
+
+void gl2_0_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nusv(index, v);
+}
+
+void gl2_0_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nuiv(index, v);
+}
+
+void gl2_0_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nubv(index, v);
+}
+
+void gl2_0_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nub(index, x, y, z, w);
+}
+
+void gl2_0_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nsv(index, v);
+}
+
+void gl2_0_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Niv(index, v);
+}
+
+void gl2_0_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nbv(index, v);
+}
+
+void gl2_0_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3sv(index, v);
+}
+
+void gl2_0_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3s(index, x, y, z);
+}
+
+void gl2_0_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, v);
+}
+
+void gl2_0_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gl2_0_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3dv(index, v);
+}
+
+void gl2_0_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3d(index, x, y, z);
+}
+
+void gl2_0_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2sv(index, v);
+}
+
+void gl2_0_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2s(index, x, y);
+}
+
+void gl2_0_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, v);
+}
+
+void gl2_0_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gl2_0_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2dv(index, v);
+}
+
+void gl2_0_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2d(index, x, y);
+}
+
+void gl2_0_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1sv(index, v);
+}
+
+void gl2_0_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1s(index, x);
+}
+
+void gl2_0_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, v);
+}
+
+void gl2_0_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gl2_0_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1dv(index, v);
+}
+
+void gl2_0_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_2_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1d(index, x);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/funcs.h
new file mode 100644
index 000000000..ffa1a2a83
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/funcs.h
@@ -0,0 +1,613 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl2_0_funcs();
+
+void gl2_0_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_0_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl2_0_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl2_0_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl2_0_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl2_0_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_0_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_0_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl2_0_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl2_0_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl2_0_glGetError(void *_glfuncs);
+void gl2_0_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl2_0_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl2_0_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl2_0_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl2_0_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl2_0_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_0_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl2_0_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl2_0_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl2_0_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl2_0_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl2_0_glFlush(void *_glfuncs);
+void gl2_0_glFinish(void *_glfuncs);
+void gl2_0_glEnable(void *_glfuncs, GLenum cap);
+void gl2_0_glDisable(void *_glfuncs, GLenum cap);
+void gl2_0_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl2_0_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl2_0_glStencilMask(void *_glfuncs, GLuint mask);
+void gl2_0_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl2_0_glClearStencil(void *_glfuncs, GLint s);
+void gl2_0_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl2_0_glClear(void *_glfuncs, GLbitfield mask);
+void gl2_0_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl2_0_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_0_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_0_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl2_0_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl2_0_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl2_0_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl2_0_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_0_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl2_0_glPointSize(void *_glfuncs, GLfloat size);
+void gl2_0_glLineWidth(void *_glfuncs, GLfloat width);
+void gl2_0_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl2_0_glFrontFace(void *_glfuncs, GLenum mode);
+void gl2_0_glCullFace(void *_glfuncs, GLenum mode);
+void gl2_0_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl2_0_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl2_0_glIsTexture(void *_glfuncs, GLuint texture);
+void gl2_0_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl2_0_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl2_0_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl2_0_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_0_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_0_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_0_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl2_0_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl2_0_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl2_0_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl2_0_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl2_0_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl2_0_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_0_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);
+void gl2_0_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_0_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl2_0_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl2_0_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl2_0_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl2_0_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl2_0_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl2_0_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);
+void gl2_0_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl2_0_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl2_0_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl2_0_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl2_0_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl2_0_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl2_0_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl2_0_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl2_0_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_0_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl2_0_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl2_0_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl2_0_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl2_0_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl2_0_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl2_0_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl2_0_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl2_0_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl2_0_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl2_0_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl2_0_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl2_0_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl2_0_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_0_glEndQuery(void *_glfuncs, GLenum target);
+void gl2_0_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl2_0_glIsQuery(void *_glfuncs, GLuint id);
+void gl2_0_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl2_0_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl2_0_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl2_0_glValidateProgram(void *_glfuncs, GLuint program);
+void gl2_0_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_0_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_0_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_0_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl2_0_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl2_0_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl2_0_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl2_0_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl2_0_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl2_0_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl2_0_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl2_0_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl2_0_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl2_0_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl2_0_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl2_0_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl2_0_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl2_0_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl2_0_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl2_0_glUseProgram(void *_glfuncs, GLuint program);
+void gl2_0_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl2_0_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl2_0_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl2_0_glIsProgram(void *_glfuncs, GLuint program);
+void gl2_0_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl2_0_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl2_0_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl2_0_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl2_0_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl2_0_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl2_0_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl2_0_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl2_0_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl2_0_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl2_0_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl2_0_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl2_0_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl2_0_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl2_0_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl2_0_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl2_0_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl2_0_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl2_0_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl2_0_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl2_0_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl2_0_glCreateProgram(void *_glfuncs);
+void gl2_0_glCompileShader(void *_glfuncs, GLuint shader);
+void gl2_0_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl2_0_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl2_0_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl2_0_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl2_0_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl2_0_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl2_0_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl2_0_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_0_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_0_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_0_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_0_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl2_0_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl2_0_glPushMatrix(void *_glfuncs);
+void gl2_0_glPopMatrix(void *_glfuncs);
+void gl2_0_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl2_0_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl2_0_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl2_0_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl2_0_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl2_0_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl2_0_glLoadIdentity(void *_glfuncs);
+void gl2_0_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl2_0_glIsList(void *_glfuncs, GLuint list);
+void gl2_0_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl2_0_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl2_0_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl2_0_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_0_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_0_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl2_0_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl2_0_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl2_0_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl2_0_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl2_0_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl2_0_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl2_0_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl2_0_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl2_0_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl2_0_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl2_0_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl2_0_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_0_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl2_0_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl2_0_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl2_0_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl2_0_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl2_0_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_0_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl2_0_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl2_0_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl2_0_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl2_0_glEvalPoint1(void *_glfuncs, GLint i);
+void gl2_0_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl2_0_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl2_0_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl2_0_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl2_0_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl2_0_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl2_0_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl2_0_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl2_0_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl2_0_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl2_0_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl2_0_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl2_0_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl2_0_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl2_0_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl2_0_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl2_0_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl2_0_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl2_0_glPopAttrib(void *_glfuncs);
+void gl2_0_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl2_0_glIndexMask(void *_glfuncs, GLuint mask);
+void gl2_0_glClearIndex(void *_glfuncs, GLfloat c);
+void gl2_0_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl2_0_glPushName(void *_glfuncs, GLuint name);
+void gl2_0_glPopName(void *_glfuncs);
+void gl2_0_glPassThrough(void *_glfuncs, GLfloat token);
+void gl2_0_glLoadName(void *_glfuncs, GLuint name);
+void gl2_0_glInitNames(void *_glfuncs);
+GLint gl2_0_glRenderMode(void *_glfuncs, GLenum mode);
+void gl2_0_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl2_0_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl2_0_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl2_0_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl2_0_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl2_0_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl2_0_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl2_0_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl2_0_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl2_0_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl2_0_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl2_0_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl2_0_glShadeModel(void *_glfuncs, GLenum mode);
+void gl2_0_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl2_0_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl2_0_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl2_0_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl2_0_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl2_0_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl2_0_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl2_0_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl2_0_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl2_0_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_0_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl2_0_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl2_0_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl2_0_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl2_0_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl2_0_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl2_0_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl2_0_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_0_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl2_0_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl2_0_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl2_0_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl2_0_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl2_0_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl2_0_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl2_0_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl2_0_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl2_0_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl2_0_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_0_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_0_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl2_0_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl2_0_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl2_0_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl2_0_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl2_0_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl2_0_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl2_0_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl2_0_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl2_0_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl2_0_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl2_0_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl2_0_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl2_0_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl2_0_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl2_0_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl2_0_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl2_0_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl2_0_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl2_0_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl2_0_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl2_0_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl2_0_glTexCoord1i(void *_glfuncs, GLint s);
+void gl2_0_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl2_0_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl2_0_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl2_0_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl2_0_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl2_0_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl2_0_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl2_0_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl2_0_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl2_0_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl2_0_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl2_0_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl2_0_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl2_0_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl2_0_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl2_0_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl2_0_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl2_0_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl2_0_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_0_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_0_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl2_0_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl2_0_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl2_0_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl2_0_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl2_0_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl2_0_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl2_0_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl2_0_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl2_0_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl2_0_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl2_0_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl2_0_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl2_0_glIndexs(void *_glfuncs, GLshort c);
+void gl2_0_glIndexiv(void *_glfuncs, const GLint* c);
+void gl2_0_glIndexi(void *_glfuncs, GLint c);
+void gl2_0_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl2_0_glIndexf(void *_glfuncs, GLfloat c);
+void gl2_0_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl2_0_glIndexd(void *_glfuncs, GLdouble c);
+void gl2_0_glEnd(void *_glfuncs);
+void gl2_0_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl2_0_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl2_0_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl2_0_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl2_0_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl2_0_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl2_0_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl2_0_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl2_0_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl2_0_glColor4iv(void *_glfuncs, const GLint* v);
+void gl2_0_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl2_0_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl2_0_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl2_0_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl2_0_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl2_0_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl2_0_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl2_0_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl2_0_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl2_0_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl2_0_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl2_0_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl2_0_glColor3iv(void *_glfuncs, const GLint* v);
+void gl2_0_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl2_0_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl2_0_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl2_0_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl2_0_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl2_0_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl2_0_glBegin(void *_glfuncs, GLenum mode);
+void gl2_0_glListBase(void *_glfuncs, GLuint base);
+GLuint gl2_0_glGenLists(void *_glfuncs, GLsizei range_);
+void gl2_0_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl2_0_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl2_0_glCallList(void *_glfuncs, GLuint list);
+void gl2_0_glEndList(void *_glfuncs);
+void gl2_0_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl2_0_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl2_0_glPopClientAttrib(void *_glfuncs);
+void gl2_0_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl2_0_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl2_0_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_0_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_0_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_0_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl2_0_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_0_glEnableClientState(void *_glfuncs, GLenum array);
+void gl2_0_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl2_0_glDisableClientState(void *_glfuncs, GLenum array);
+void gl2_0_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_0_glArrayElement(void *_glfuncs, GLint i);
+void gl2_0_glResetMinmax(void *_glfuncs, GLenum target);
+void gl2_0_glResetHistogram(void *_glfuncs, GLenum target);
+void gl2_0_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl2_0_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl2_0_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_0_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_0_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl2_0_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_0_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_0_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl2_0_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl2_0_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl2_0_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_0_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_0_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl2_0_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_0_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl2_0_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl2_0_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl2_0_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl2_0_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl2_0_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl2_0_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl2_0_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl2_0_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl2_0_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_0_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_0_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl2_0_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl2_0_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl2_0_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl2_0_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl2_0_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl2_0_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl2_0_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl2_0_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl2_0_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl2_0_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl2_0_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl2_0_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl2_0_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl2_0_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl2_0_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl2_0_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl2_0_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl2_0_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl2_0_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl2_0_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl2_0_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl2_0_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl2_0_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl2_0_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl2_0_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl2_0_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl2_0_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl2_0_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl2_0_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl2_0_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl2_0_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl2_0_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl2_0_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl2_0_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl2_0_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl2_0_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl2_0_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl2_0_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl2_0_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl2_0_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl2_0_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl2_0_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl2_0_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl2_0_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl2_0_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_0_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_0_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl2_0_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl2_0_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl2_0_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl2_0_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl2_0_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_0_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl2_0_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl2_0_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl2_0_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl2_0_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl2_0_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl2_0_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl2_0_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl2_0_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl2_0_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl2_0_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl2_0_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl2_0_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl2_0_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl2_0_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl2_0_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl2_0_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_0_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl2_0_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl2_0_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl2_0_glFogCoordf(void *_glfuncs, GLfloat coord);
+void gl2_0_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl2_0_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl2_0_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl2_0_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_0_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl2_0_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl2_0_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl2_0_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl2_0_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl2_0_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl2_0_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl2_0_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl2_0_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl2_0_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl2_0_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+void gl2_0_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_0_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v);
+void gl2_0_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl2_0_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_0_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z);
+void gl2_0_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl2_0_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gl2_0_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl2_0_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl2_0_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_0_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y);
+void gl2_0_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl2_0_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gl2_0_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl2_0_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl2_0_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_0_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x);
+void gl2_0_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl2_0_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gl2_0_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl2_0_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/gl.go
new file mode 100644
index 000000000..7bd1e1b52
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.0/gl.go
@@ -0,0 +1,6407 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 2.0 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl2_0_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 2.0 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 2.0 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ SAMPLES_PASSED = 0x8914
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+)
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl2_0_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl2_0_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl2_0_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl2_0_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl2_0_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl2_0_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl2_0_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl2_0_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl2_0_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl2_0_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl2_0_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl2_0_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl2_0_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl2_0_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl2_0_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl2_0_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl2_0_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl2_0_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl2_0_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl2_0_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl2_0_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl2_0_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl2_0_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl2_0_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl2_0_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl2_0_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl2_0_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl2_0_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl2_0_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl2_0_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl2_0_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl2_0_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl2_0_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl2_0_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl2_0_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl2_0_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl2_0_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl2_0_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl2_0_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl2_0_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl2_0_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl2_0_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl2_0_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl2_0_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl2_0_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl2_0_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl2_0_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl2_0_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl2_0_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl2_0_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl2_0_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl2_0_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl2_0_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl2_0_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl2_0_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl2_0_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl2_0_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl2_0_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl2_0_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl2_0_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl2_0_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl2_0_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl2_0_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl2_0_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl2_0_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl2_0_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl2_0_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl2_0_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl2_0_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl2_0_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl2_0_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl2_0_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl2_0_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl2_0_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl2_0_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl2_0_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl2_0_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl2_0_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl2_0_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl2_0_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl2_0_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl2_0_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl2_0_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl2_0_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl2_0_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl2_0_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl2_0_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl2_0_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl2_0_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl2_0_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl2_0_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl2_0_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl2_0_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl2_0_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl2_0_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl2_0_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl2_0_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl2_0_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl2_0_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl2_0_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl2_0_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl2_0_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl2_0_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl2_0_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl2_0_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl2_0_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl2_0_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl2_0_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl2_0_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl2_0_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl2_0_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl2_0_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl2_0_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl2_0_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl2_0_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl2_0_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl2_0_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl2_0_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl2_0_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl2_0_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl2_0_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl2_0_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl2_0_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl2_0_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl2_0_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl2_0_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl2_0_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl2_0_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl2_0_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl2_0_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl2_0_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl2_0_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl2_0_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl2_0_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl2_0_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl2_0_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl2_0_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl2_0_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl2_0_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl2_0_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl2_0_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl2_0_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl2_0_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl2_0_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl2_0_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl2_0_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl2_0_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl2_0_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl2_0_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl2_0_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl2_0_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl2_0_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl2_0_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl2_0_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl2_0_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl2_0_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl2_0_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl2_0_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl2_0_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl2_0_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl2_0_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl2_0_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl2_0_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl2_0_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl2_0_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl2_0_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl2_0_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl2_0_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl2_0_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl2_0_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl2_0_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl2_0_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl2_0_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl2_0_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl2_0_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl2_0_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl2_0_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl2_0_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl2_0_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl2_0_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl2_0_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl2_0_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl2_0_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl2_0_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl2_0_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl2_0_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl2_0_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl2_0_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl2_0_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl2_0_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl2_0_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl2_0_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl2_0_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl2_0_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl2_0_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl2_0_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl2_0_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl2_0_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl2_0_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl2_0_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl2_0_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl2_0_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl2_0_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl2_0_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl2_0_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl2_0_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl2_0_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl2_0_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl2_0_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl2_0_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl2_0_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl2_0_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl2_0_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl2_0_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl2_0_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl2_0_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl2_0_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl2_0_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl2_0_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl2_0_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl2_0_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl2_0_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl2_0_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl2_0_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl2_0_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl2_0_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl2_0_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl2_0_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl2_0_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl2_0_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl2_0_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl2_0_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl2_0_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl2_0_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl2_0_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl2_0_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl2_0_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl2_0_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl2_0_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl2_0_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl2_0_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl2_0_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl2_0_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl2_0_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl2_0_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl2_0_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl2_0_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl2_0_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl2_0_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl2_0_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl2_0_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl2_0_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl2_0_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl2_0_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl2_0_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl2_0_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl2_0_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl2_0_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl2_0_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl2_0_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl2_0_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl2_0_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl2_0_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl2_0_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl2_0_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl2_0_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl2_0_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl2_0_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl2_0_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl2_0_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl2_0_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl2_0_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl2_0_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl2_0_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl2_0_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl2_0_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl2_0_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl2_0_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl2_0_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl2_0_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl2_0_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl2_0_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl2_0_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl2_0_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl2_0_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl2_0_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl2_0_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl2_0_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl2_0_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl2_0_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl2_0_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl2_0_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl2_0_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl2_0_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl2_0_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl2_0_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl2_0_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl2_0_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl2_0_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl2_0_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl2_0_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl2_0_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl2_0_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl2_0_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl2_0_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl2_0_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl2_0_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl2_0_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl2_0_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl2_0_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl2_0_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl2_0_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl2_0_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl2_0_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl2_0_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl2_0_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl2_0_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl2_0_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl2_0_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl2_0_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl2_0_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl2_0_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl2_0_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl2_0_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl2_0_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl2_0_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl2_0_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl2_0_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl2_0_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl2_0_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl2_0_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl2_0_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl2_0_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl2_0_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl2_0_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl2_0_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl2_0_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl2_0_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl2_0_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl2_0_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl2_0_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_0_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_0_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl2_0_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl2_0_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl2_0_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl2_0_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl2_0_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl2_0_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl2_0_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl2_0_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl2_0_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl2_0_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl2_0_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl2_0_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl2_0_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl2_0_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl2_0_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl2_0_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl2_0_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl2_0_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl2_0_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl2_0_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl2_0_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl2_0_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl2_0_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl2_0_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl2_0_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl2_0_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl2_0_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl2_0_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl2_0_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl2_0_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl2_0_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl2_0_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl2_0_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl2_0_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl2_0_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl2_0_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl2_0_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl2_0_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl2_0_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl2_0_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl2_0_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl2_0_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl2_0_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl2_0_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl2_0_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_0_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl2_0_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl2_0_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl2_0_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl2_0_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4usv.xml
+func (gl *GL) VertexAttrib4usv(index glbase.Attrib, v []uint16) {
+ C.gl2_0_glVertexAttrib4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4uiv.xml
+func (gl *GL) VertexAttrib4uiv(index glbase.Attrib, v []uint32) {
+ C.gl2_0_glVertexAttrib4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4ubv.xml
+func (gl *GL) VertexAttrib4ubv(index glbase.Attrib, v []uint8) {
+ C.gl2_0_glVertexAttrib4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4sv.xml
+func (gl *GL) VertexAttrib4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4s.xml
+func (gl *GL) VertexAttrib4s(index glbase.Attrib, x, y, z, w int16) {
+ C.gl2_0_glVertexAttrib4s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4iv.xml
+func (gl *GL) VertexAttrib4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gl2_0_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4dv.xml
+func (gl *GL) VertexAttrib4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4d.xml
+func (gl *GL) VertexAttrib4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl2_0_glVertexAttrib4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4bv.xml
+func (gl *GL) VertexAttrib4bv(index glbase.Attrib, v []byte) {
+ C.gl2_0_glVertexAttrib4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nusv.xml
+func (gl *GL) VertexAttrib4Nusv(index glbase.Attrib, v []uint16) {
+ C.gl2_0_glVertexAttrib4Nusv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nuiv.xml
+func (gl *GL) VertexAttrib4Nuiv(index glbase.Attrib, v []uint32) {
+ C.gl2_0_glVertexAttrib4Nuiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nubv.xml
+func (gl *GL) VertexAttrib4Nubv(index glbase.Attrib, v []uint8) {
+ C.gl2_0_glVertexAttrib4Nubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nub.xml
+func (gl *GL) VertexAttrib4Nub(index glbase.Attrib, x, y, z, w uint8) {
+ C.gl2_0_glVertexAttrib4Nub(gl.funcs, C.GLuint(index), C.GLubyte(x), C.GLubyte(y), C.GLubyte(z), C.GLubyte(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nsv.xml
+func (gl *GL) VertexAttrib4Nsv(index glbase.Attrib, v []int16) {
+ C.gl2_0_glVertexAttrib4Nsv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Niv.xml
+func (gl *GL) VertexAttrib4Niv(index glbase.Attrib, v []int32) {
+ C.gl2_0_glVertexAttrib4Niv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nbv.xml
+func (gl *GL) VertexAttrib4Nbv(index glbase.Attrib, v []byte) {
+ C.gl2_0_glVertexAttrib4Nbv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3sv.xml
+func (gl *GL) VertexAttrib3sv(index glbase.Attrib, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib3sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3s.xml
+func (gl *GL) VertexAttrib3s(index glbase.Attrib, x, y, z int16) {
+ C.gl2_0_glVertexAttrib3s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gl2_0_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3dv.xml
+func (gl *GL) VertexAttrib3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3d.xml
+func (gl *GL) VertexAttrib3d(index glbase.Attrib, x, y, z float64) {
+ C.gl2_0_glVertexAttrib3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2sv.xml
+func (gl *GL) VertexAttrib2sv(index glbase.Attrib, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib2sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2s.xml
+func (gl *GL) VertexAttrib2s(index glbase.Attrib, x, y int16) {
+ C.gl2_0_glVertexAttrib2s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gl2_0_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2dv.xml
+func (gl *GL) VertexAttrib2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_0_glVertexAttrib2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2d.xml
+func (gl *GL) VertexAttrib2d(index glbase.Attrib, x, y float64) {
+ C.gl2_0_glVertexAttrib2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1sv.xml
+func (gl *GL) VertexAttrib1sv(index glbase.Attrib, v []int16) {
+ C.gl2_0_glVertexAttrib1sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1s.xml
+func (gl *GL) VertexAttrib1s(index glbase.Attrib, x int16) {
+ C.gl2_0_glVertexAttrib1s(gl.funcs, C.GLuint(index), C.GLshort(x))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, v []float32) {
+ C.gl2_0_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gl2_0_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1dv.xml
+func (gl *GL) VertexAttrib1dv(index glbase.Attrib, v []float64) {
+ C.gl2_0_glVertexAttrib1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1d.xml
+func (gl *GL) VertexAttrib1d(index glbase.Attrib, x float64) {
+ C.gl2_0_glVertexAttrib1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/funcs.cpp
new file mode 100644
index 000000000..6235d6e81
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/funcs.cpp
@@ -0,0 +1,3480 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_2_1.h>
+
+#include "funcs.h"
+
+void *gl2_1_funcs() {
+ QOpenGLFunctions_2_1* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_2_1>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl2_1_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl2_1_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl2_1_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl2_1_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl2_1_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl2_1_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl2_1_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl2_1_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl2_1_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl2_1_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl2_1_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl2_1_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl2_1_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl2_1_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl2_1_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl2_1_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl2_1_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl2_1_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl2_1_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl2_1_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl2_1_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl2_1_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl2_1_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl2_1_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl2_1_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl2_1_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl2_1_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl2_1_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl2_1_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl2_1_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl2_1_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl2_1_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl2_1_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl2_1_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl2_1_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl2_1_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl2_1_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl2_1_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl2_1_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl2_1_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl2_1_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl2_1_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl2_1_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl2_1_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl2_1_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl2_1_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl2_1_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl2_1_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl2_1_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl2_1_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl2_1_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl2_1_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl2_1_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl2_1_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl2_1_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl2_1_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl2_1_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl2_1_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl2_1_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl2_1_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl2_1_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl2_1_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl2_1_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl2_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_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl2_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_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl2_1_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl2_1_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl2_1_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl2_1_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl2_1_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl2_1_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl2_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_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl2_1_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl2_1_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl2_1_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl2_1_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl2_1_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl2_1_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl2_1_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl2_1_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl2_1_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl2_1_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl2_1_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl2_1_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl2_1_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl2_1_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl2_1_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl2_1_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl2_1_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl2_1_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl2_1_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl2_1_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl2_1_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl2_1_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl2_1_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl2_1_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl2_1_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl2_1_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl2_1_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl2_1_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl2_1_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl2_1_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl2_1_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl2_1_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl2_1_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl2_1_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl2_1_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl2_1_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl2_1_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl2_1_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl2_1_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl2_1_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl2_1_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl2_1_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl2_1_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl2_1_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl2_1_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl2_1_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl2_1_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl2_1_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl2_1_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl2_1_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl2_1_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl2_1_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl2_1_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl2_1_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl2_1_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl2_1_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl2_1_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl2_1_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl2_1_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl2_1_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl2_1_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl2_1_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl2_1_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl2_1_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl2_1_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl2_1_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl2_1_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl2_1_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl2_1_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl2_1_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl2_1_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl2_1_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl2_1_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl2_1_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl2_1_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl2_1_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl2_1_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl2_1_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl2_1_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl2_1_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl2_1_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl2_1_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl2_1_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl2_1_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl2_1_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl2_1_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl2_1_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl2_1_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl2_1_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl2_1_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+void gl2_1_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl2_1_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl2_1_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl2_1_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl2_1_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl2_1_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl2_1_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl2_1_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl2_1_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl2_1_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl2_1_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl2_1_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl2_1_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl2_1_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl2_1_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl2_1_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl2_1_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl2_1_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl2_1_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl2_1_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl2_1_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl2_1_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl2_1_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl2_1_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl2_1_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl2_1_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl2_1_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl2_1_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl2_1_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl2_1_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl2_1_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl2_1_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl2_1_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl2_1_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl2_1_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl2_1_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl2_1_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl2_1_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl2_1_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl2_1_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl2_1_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl2_1_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl2_1_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl2_1_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl2_1_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl2_1_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl2_1_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl2_1_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl2_1_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl2_1_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl2_1_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl2_1_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl2_1_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl2_1_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl2_1_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl2_1_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl2_1_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl2_1_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl2_1_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl2_1_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl2_1_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl2_1_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl2_1_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl2_1_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl2_1_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl2_1_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl2_1_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl2_1_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl2_1_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl2_1_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl2_1_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl2_1_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl2_1_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl2_1_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl2_1_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl2_1_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl2_1_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl2_1_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl2_1_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl2_1_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl2_1_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl2_1_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl2_1_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl2_1_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl2_1_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl2_1_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl2_1_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl2_1_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl2_1_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl2_1_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl2_1_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl2_1_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl2_1_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl2_1_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl2_1_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl2_1_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl2_1_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl2_1_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl2_1_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl2_1_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl2_1_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl2_1_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl2_1_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl2_1_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl2_1_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl2_1_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl2_1_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl2_1_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl2_1_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl2_1_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl2_1_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl2_1_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl2_1_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl2_1_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl2_1_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl2_1_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl2_1_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl2_1_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl2_1_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl2_1_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl2_1_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl2_1_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl2_1_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl2_1_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl2_1_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl2_1_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl2_1_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl2_1_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl2_1_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl2_1_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl2_1_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl2_1_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl2_1_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl2_1_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl2_1_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl2_1_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl2_1_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl2_1_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl2_1_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl2_1_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl2_1_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl2_1_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl2_1_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl2_1_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl2_1_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl2_1_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl2_1_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl2_1_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl2_1_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl2_1_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl2_1_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl2_1_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl2_1_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl2_1_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl2_1_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl2_1_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl2_1_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl2_1_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl2_1_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl2_1_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl2_1_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl2_1_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl2_1_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl2_1_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl2_1_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl2_1_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl2_1_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl2_1_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl2_1_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl2_1_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl2_1_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl2_1_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl2_1_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl2_1_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl2_1_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl2_1_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl2_1_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl2_1_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl2_1_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl2_1_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl2_1_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl2_1_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl2_1_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl2_1_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl2_1_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl2_1_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl2_1_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl2_1_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl2_1_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl2_1_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl2_1_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl2_1_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl2_1_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl2_1_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl2_1_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl2_1_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl2_1_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl2_1_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl2_1_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl2_1_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl2_1_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl2_1_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl2_1_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl2_1_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl2_1_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl2_1_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl2_1_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl2_1_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl2_1_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl2_1_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl2_1_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl2_1_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl2_1_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl2_1_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl2_1_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl2_1_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl2_1_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl2_1_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl2_1_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl2_1_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl2_1_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl2_1_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl2_1_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl2_1_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl2_1_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl2_1_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl2_1_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl2_1_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl2_1_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl2_1_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl2_1_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl2_1_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl2_1_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl2_1_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl2_1_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl2_1_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl2_1_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl2_1_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl2_1_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl2_1_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl2_1_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl2_1_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl2_1_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl2_1_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl2_1_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl2_1_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl2_1_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl2_1_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl2_1_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl2_1_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl2_1_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl2_1_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl2_1_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl2_1_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl2_1_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl2_1_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl2_1_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl2_1_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl2_1_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl2_1_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl2_1_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl2_1_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl2_1_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl2_1_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl2_1_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl2_1_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl2_1_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl2_1_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl2_1_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl2_1_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl2_1_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl2_1_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl2_1_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl2_1_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl2_1_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl2_1_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl2_1_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl2_1_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl2_1_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl2_1_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl2_1_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl2_1_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl2_1_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl2_1_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl2_1_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl2_1_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl2_1_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl2_1_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl2_1_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl2_1_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl2_1_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl2_1_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl2_1_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl2_1_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl2_1_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl2_1_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl2_1_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl2_1_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl2_1_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl2_1_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl2_1_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl2_1_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl2_1_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl2_1_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl2_1_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl2_1_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl2_1_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl2_1_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl2_1_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl2_1_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl2_1_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl2_1_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl2_1_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl2_1_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl2_1_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl2_1_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl2_1_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl2_1_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl2_1_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl2_1_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl2_1_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl2_1_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl2_1_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl2_1_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl2_1_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl2_1_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl2_1_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl2_1_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl2_1_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl2_1_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl2_1_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl2_1_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl2_1_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl2_1_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl2_1_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl2_1_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl2_1_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl2_1_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl2_1_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl2_1_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl2_1_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl2_1_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl2_1_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl2_1_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl2_1_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl2_1_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl2_1_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl2_1_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl2_1_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl2_1_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl2_1_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl2_1_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl2_1_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl2_1_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl2_1_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl2_1_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl2_1_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl2_1_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl2_1_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl2_1_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl2_1_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl2_1_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl2_1_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl2_1_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl2_1_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl2_1_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl2_1_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl2_1_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl2_1_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl2_1_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl2_1_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl2_1_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl2_1_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl2_1_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl2_1_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl2_1_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl2_1_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl2_1_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl2_1_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
+void gl2_1_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4usv(index, v);
+}
+
+void gl2_1_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4uiv(index, v);
+}
+
+void gl2_1_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4ubv(index, v);
+}
+
+void gl2_1_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4sv(index, v);
+}
+
+void gl2_1_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4s(index, x, y, z, w);
+}
+
+void gl2_1_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4iv(index, v);
+}
+
+void gl2_1_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, v);
+}
+
+void gl2_1_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gl2_1_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4dv(index, v);
+}
+
+void gl2_1_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4d(index, x, y, z, w);
+}
+
+void gl2_1_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4bv(index, v);
+}
+
+void gl2_1_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nusv(index, v);
+}
+
+void gl2_1_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nuiv(index, v);
+}
+
+void gl2_1_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nubv(index, v);
+}
+
+void gl2_1_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nub(index, x, y, z, w);
+}
+
+void gl2_1_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nsv(index, v);
+}
+
+void gl2_1_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Niv(index, v);
+}
+
+void gl2_1_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nbv(index, v);
+}
+
+void gl2_1_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3sv(index, v);
+}
+
+void gl2_1_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3s(index, x, y, z);
+}
+
+void gl2_1_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, v);
+}
+
+void gl2_1_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gl2_1_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3dv(index, v);
+}
+
+void gl2_1_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3d(index, x, y, z);
+}
+
+void gl2_1_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2sv(index, v);
+}
+
+void gl2_1_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2s(index, x, y);
+}
+
+void gl2_1_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, v);
+}
+
+void gl2_1_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gl2_1_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2dv(index, v);
+}
+
+void gl2_1_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2d(index, x, y);
+}
+
+void gl2_1_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1sv(index, v);
+}
+
+void gl2_1_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1s(index, x);
+}
+
+void gl2_1_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, v);
+}
+
+void gl2_1_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gl2_1_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1dv(index, v);
+}
+
+void gl2_1_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_2_1* _qglfuncs = reinterpret_cast<QOpenGLFunctions_2_1*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1d(index, x);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/funcs.h
new file mode 100644
index 000000000..399784504
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/funcs.h
@@ -0,0 +1,619 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl2_1_funcs();
+
+void gl2_1_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_1_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl2_1_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl2_1_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl2_1_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl2_1_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_1_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_1_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl2_1_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl2_1_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl2_1_glGetError(void *_glfuncs);
+void gl2_1_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl2_1_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl2_1_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl2_1_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl2_1_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl2_1_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_1_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl2_1_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl2_1_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl2_1_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl2_1_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl2_1_glFlush(void *_glfuncs);
+void gl2_1_glFinish(void *_glfuncs);
+void gl2_1_glEnable(void *_glfuncs, GLenum cap);
+void gl2_1_glDisable(void *_glfuncs, GLenum cap);
+void gl2_1_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl2_1_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl2_1_glStencilMask(void *_glfuncs, GLuint mask);
+void gl2_1_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl2_1_glClearStencil(void *_glfuncs, GLint s);
+void gl2_1_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl2_1_glClear(void *_glfuncs, GLbitfield mask);
+void gl2_1_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl2_1_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_1_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_1_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl2_1_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl2_1_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl2_1_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl2_1_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_1_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl2_1_glPointSize(void *_glfuncs, GLfloat size);
+void gl2_1_glLineWidth(void *_glfuncs, GLfloat width);
+void gl2_1_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl2_1_glFrontFace(void *_glfuncs, GLenum mode);
+void gl2_1_glCullFace(void *_glfuncs, GLenum mode);
+void gl2_1_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl2_1_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl2_1_glIsTexture(void *_glfuncs, GLuint texture);
+void gl2_1_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl2_1_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl2_1_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl2_1_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_1_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_1_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_1_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl2_1_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl2_1_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl2_1_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl2_1_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl2_1_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl2_1_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_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);
+void gl2_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);
+void gl2_1_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl2_1_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl2_1_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl2_1_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl2_1_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl2_1_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl2_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);
+void gl2_1_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl2_1_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl2_1_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl2_1_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl2_1_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl2_1_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl2_1_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl2_1_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl2_1_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_1_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl2_1_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl2_1_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl2_1_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl2_1_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl2_1_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl2_1_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl2_1_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl2_1_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl2_1_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl2_1_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl2_1_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl2_1_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl2_1_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_1_glEndQuery(void *_glfuncs, GLenum target);
+void gl2_1_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl2_1_glIsQuery(void *_glfuncs, GLuint id);
+void gl2_1_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl2_1_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl2_1_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl2_1_glValidateProgram(void *_glfuncs, GLuint program);
+void gl2_1_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_1_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_1_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_1_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl2_1_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl2_1_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl2_1_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl2_1_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl2_1_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl2_1_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl2_1_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl2_1_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl2_1_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl2_1_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl2_1_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl2_1_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl2_1_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl2_1_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl2_1_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl2_1_glUseProgram(void *_glfuncs, GLuint program);
+void gl2_1_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl2_1_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl2_1_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl2_1_glIsProgram(void *_glfuncs, GLuint program);
+void gl2_1_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl2_1_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl2_1_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl2_1_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl2_1_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl2_1_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl2_1_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl2_1_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl2_1_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl2_1_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl2_1_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl2_1_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl2_1_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl2_1_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl2_1_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl2_1_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl2_1_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl2_1_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl2_1_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl2_1_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl2_1_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl2_1_glCreateProgram(void *_glfuncs);
+void gl2_1_glCompileShader(void *_glfuncs, GLuint shader);
+void gl2_1_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl2_1_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl2_1_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl2_1_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl2_1_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl2_1_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl2_1_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl2_1_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_1_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_1_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_1_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_1_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_1_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl2_1_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_1_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_1_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_1_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_1_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl2_1_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl2_1_glPushMatrix(void *_glfuncs);
+void gl2_1_glPopMatrix(void *_glfuncs);
+void gl2_1_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl2_1_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl2_1_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl2_1_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl2_1_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl2_1_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl2_1_glLoadIdentity(void *_glfuncs);
+void gl2_1_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl2_1_glIsList(void *_glfuncs, GLuint list);
+void gl2_1_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl2_1_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl2_1_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl2_1_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_1_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_1_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl2_1_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl2_1_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl2_1_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl2_1_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl2_1_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl2_1_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl2_1_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl2_1_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl2_1_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl2_1_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl2_1_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl2_1_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl2_1_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl2_1_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl2_1_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl2_1_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl2_1_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl2_1_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_1_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl2_1_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl2_1_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl2_1_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl2_1_glEvalPoint1(void *_glfuncs, GLint i);
+void gl2_1_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl2_1_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl2_1_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl2_1_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl2_1_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl2_1_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl2_1_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl2_1_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl2_1_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl2_1_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl2_1_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl2_1_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl2_1_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl2_1_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl2_1_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl2_1_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl2_1_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl2_1_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl2_1_glPopAttrib(void *_glfuncs);
+void gl2_1_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl2_1_glIndexMask(void *_glfuncs, GLuint mask);
+void gl2_1_glClearIndex(void *_glfuncs, GLfloat c);
+void gl2_1_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl2_1_glPushName(void *_glfuncs, GLuint name);
+void gl2_1_glPopName(void *_glfuncs);
+void gl2_1_glPassThrough(void *_glfuncs, GLfloat token);
+void gl2_1_glLoadName(void *_glfuncs, GLuint name);
+void gl2_1_glInitNames(void *_glfuncs);
+GLint gl2_1_glRenderMode(void *_glfuncs, GLenum mode);
+void gl2_1_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl2_1_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl2_1_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl2_1_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl2_1_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl2_1_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl2_1_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl2_1_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl2_1_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl2_1_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl2_1_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl2_1_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl2_1_glShadeModel(void *_glfuncs, GLenum mode);
+void gl2_1_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl2_1_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl2_1_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl2_1_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl2_1_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl2_1_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl2_1_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl2_1_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl2_1_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl2_1_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_1_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl2_1_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl2_1_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl2_1_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl2_1_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl2_1_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl2_1_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl2_1_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl2_1_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl2_1_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl2_1_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl2_1_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl2_1_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl2_1_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl2_1_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl2_1_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl2_1_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl2_1_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl2_1_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_1_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_1_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl2_1_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl2_1_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl2_1_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl2_1_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl2_1_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl2_1_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl2_1_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl2_1_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl2_1_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl2_1_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl2_1_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl2_1_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl2_1_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl2_1_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl2_1_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl2_1_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl2_1_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl2_1_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl2_1_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl2_1_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl2_1_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl2_1_glTexCoord1i(void *_glfuncs, GLint s);
+void gl2_1_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl2_1_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl2_1_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl2_1_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl2_1_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl2_1_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl2_1_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl2_1_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl2_1_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl2_1_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl2_1_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl2_1_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl2_1_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl2_1_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl2_1_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl2_1_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl2_1_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl2_1_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl2_1_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_1_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_1_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl2_1_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl2_1_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl2_1_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl2_1_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl2_1_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl2_1_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl2_1_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl2_1_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl2_1_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl2_1_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl2_1_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl2_1_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl2_1_glIndexs(void *_glfuncs, GLshort c);
+void gl2_1_glIndexiv(void *_glfuncs, const GLint* c);
+void gl2_1_glIndexi(void *_glfuncs, GLint c);
+void gl2_1_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl2_1_glIndexf(void *_glfuncs, GLfloat c);
+void gl2_1_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl2_1_glIndexd(void *_glfuncs, GLdouble c);
+void gl2_1_glEnd(void *_glfuncs);
+void gl2_1_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl2_1_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl2_1_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl2_1_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl2_1_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl2_1_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl2_1_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl2_1_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl2_1_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl2_1_glColor4iv(void *_glfuncs, const GLint* v);
+void gl2_1_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl2_1_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl2_1_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl2_1_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl2_1_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl2_1_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl2_1_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl2_1_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl2_1_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl2_1_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl2_1_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl2_1_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl2_1_glColor3iv(void *_glfuncs, const GLint* v);
+void gl2_1_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl2_1_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl2_1_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl2_1_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl2_1_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl2_1_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl2_1_glBegin(void *_glfuncs, GLenum mode);
+void gl2_1_glListBase(void *_glfuncs, GLuint base);
+GLuint gl2_1_glGenLists(void *_glfuncs, GLsizei range_);
+void gl2_1_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl2_1_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl2_1_glCallList(void *_glfuncs, GLuint list);
+void gl2_1_glEndList(void *_glfuncs);
+void gl2_1_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl2_1_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl2_1_glPopClientAttrib(void *_glfuncs);
+void gl2_1_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl2_1_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl2_1_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_1_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_1_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_1_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl2_1_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_1_glEnableClientState(void *_glfuncs, GLenum array);
+void gl2_1_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl2_1_glDisableClientState(void *_glfuncs, GLenum array);
+void gl2_1_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_1_glArrayElement(void *_glfuncs, GLint i);
+void gl2_1_glResetMinmax(void *_glfuncs, GLenum target);
+void gl2_1_glResetHistogram(void *_glfuncs, GLenum target);
+void gl2_1_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl2_1_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl2_1_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_1_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_1_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl2_1_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_1_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_1_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl2_1_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl2_1_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl2_1_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_1_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_1_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl2_1_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl2_1_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl2_1_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl2_1_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl2_1_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl2_1_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl2_1_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl2_1_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl2_1_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl2_1_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl2_1_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl2_1_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl2_1_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl2_1_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl2_1_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl2_1_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl2_1_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl2_1_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl2_1_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl2_1_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl2_1_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl2_1_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl2_1_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl2_1_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl2_1_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl2_1_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl2_1_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl2_1_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl2_1_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl2_1_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl2_1_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl2_1_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl2_1_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl2_1_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl2_1_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl2_1_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl2_1_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl2_1_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl2_1_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl2_1_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl2_1_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl2_1_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl2_1_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl2_1_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl2_1_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl2_1_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl2_1_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl2_1_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl2_1_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl2_1_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl2_1_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl2_1_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl2_1_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl2_1_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl2_1_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl2_1_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl2_1_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl2_1_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl2_1_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl2_1_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl2_1_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl2_1_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl2_1_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl2_1_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl2_1_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_1_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl2_1_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl2_1_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl2_1_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl2_1_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl2_1_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl2_1_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl2_1_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl2_1_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl2_1_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl2_1_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl2_1_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl2_1_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl2_1_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl2_1_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl2_1_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl2_1_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl2_1_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl2_1_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl2_1_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl2_1_glFogCoordf(void *_glfuncs, GLfloat coord);
+void gl2_1_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl2_1_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl2_1_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl2_1_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_1_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl2_1_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl2_1_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl2_1_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl2_1_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl2_1_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl2_1_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl2_1_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl2_1_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl2_1_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl2_1_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+void gl2_1_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_1_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v);
+void gl2_1_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl2_1_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_1_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z);
+void gl2_1_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl2_1_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gl2_1_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl2_1_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl2_1_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_1_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y);
+void gl2_1_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl2_1_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gl2_1_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl2_1_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl2_1_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl2_1_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x);
+void gl2_1_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl2_1_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gl2_1_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl2_1_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/gl.go
new file mode 100644
index 000000000..718d258a3
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/2.1/gl.go
@@ -0,0 +1,6652 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 2.1 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl2_1_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 2.1 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 2.1 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ SAMPLES_PASSED = 0x8914
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+)
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl2_1_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl2_1_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl2_1_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl2_1_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl2_1_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl2_1_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl2_1_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl2_1_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl2_1_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl2_1_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl2_1_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl2_1_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl2_1_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl2_1_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl2_1_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl2_1_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl2_1_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl2_1_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl2_1_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl2_1_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl2_1_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl2_1_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl2_1_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl2_1_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl2_1_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl2_1_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl2_1_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl2_1_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl2_1_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl2_1_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl2_1_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl2_1_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl2_1_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl2_1_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl2_1_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl2_1_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl2_1_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl2_1_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl2_1_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl2_1_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl2_1_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl2_1_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl2_1_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl2_1_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl2_1_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl2_1_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl2_1_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl2_1_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl2_1_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl2_1_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl2_1_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl2_1_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl2_1_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl2_1_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl2_1_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl2_1_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl2_1_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl2_1_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl2_1_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl2_1_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl2_1_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl2_1_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl2_1_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl2_1_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl2_1_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl2_1_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl2_1_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl2_1_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl2_1_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl2_1_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl2_1_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl2_1_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl2_1_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl2_1_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl2_1_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl2_1_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl2_1_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl2_1_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl2_1_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl2_1_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl2_1_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl2_1_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl2_1_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl2_1_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl2_1_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl2_1_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl2_1_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl2_1_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl2_1_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl2_1_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl2_1_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl2_1_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl2_1_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl2_1_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl2_1_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl2_1_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl2_1_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl2_1_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl2_1_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl2_1_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl2_1_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl2_1_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl2_1_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl2_1_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl2_1_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl2_1_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl2_1_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl2_1_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl2_1_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl2_1_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl2_1_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl2_1_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl2_1_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl2_1_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl2_1_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl2_1_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl2_1_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl2_1_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl2_1_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl2_1_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl2_1_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl2_1_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl2_1_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl2_1_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl2_1_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl2_1_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl2_1_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl2_1_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl2_1_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl2_1_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl2_1_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl2_1_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl2_1_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl2_1_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl2_1_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl2_1_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl2_1_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl2_1_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl2_1_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl2_1_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl2_1_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl2_1_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl2_1_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl2_1_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl2_1_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl2_1_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl2_1_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl2_1_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl2_1_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl2_1_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl2_1_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl2_1_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl2_1_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl2_1_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl2_1_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl2_1_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl2_1_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl2_1_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl2_1_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl2_1_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl2_1_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl2_1_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl2_1_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl2_1_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl2_1_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl2_1_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl2_1_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl2_1_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl2_1_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl2_1_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl2_1_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl2_1_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl2_1_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl2_1_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl2_1_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl2_1_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl2_1_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl2_1_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl2_1_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl2_1_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl2_1_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl2_1_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl2_1_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl2_1_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl2_1_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl2_1_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl2_1_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl2_1_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl2_1_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl2_1_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl2_1_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl2_1_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl2_1_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl2_1_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl2_1_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl2_1_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl2_1_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl2_1_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl2_1_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl2_1_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl2_1_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl2_1_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl2_1_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl2_1_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl2_1_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl2_1_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl2_1_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl2_1_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl2_1_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl2_1_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl2_1_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl2_1_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl2_1_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl2_1_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl2_1_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl2_1_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl2_1_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl2_1_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl2_1_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl2_1_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl2_1_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl2_1_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl2_1_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl2_1_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl2_1_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl2_1_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl2_1_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl2_1_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl2_1_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl2_1_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl2_1_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl2_1_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl2_1_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl2_1_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl2_1_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl2_1_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl2_1_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl2_1_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl2_1_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl2_1_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl2_1_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl2_1_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl2_1_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl2_1_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl2_1_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl2_1_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl2_1_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl2_1_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl2_1_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl2_1_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl2_1_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl2_1_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl2_1_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl2_1_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl2_1_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl2_1_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl2_1_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl2_1_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl2_1_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl2_1_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl2_1_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl2_1_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl2_1_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl2_1_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl2_1_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl2_1_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl2_1_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl2_1_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl2_1_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl2_1_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl2_1_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl2_1_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl2_1_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl2_1_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl2_1_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl2_1_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl2_1_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl2_1_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl2_1_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl2_1_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl2_1_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl2_1_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl2_1_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl2_1_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl2_1_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl2_1_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl2_1_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl2_1_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl2_1_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl2_1_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl2_1_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl2_1_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl2_1_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl2_1_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl2_1_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl2_1_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl2_1_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl2_1_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl2_1_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl2_1_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl2_1_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl2_1_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl2_1_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl2_1_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl2_1_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl2_1_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl2_1_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl2_1_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl2_1_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl2_1_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl2_1_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl2_1_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl2_1_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl2_1_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl2_1_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl2_1_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl2_1_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl2_1_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl2_1_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl2_1_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl2_1_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl2_1_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl2_1_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl2_1_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl2_1_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl2_1_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl2_1_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl2_1_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl2_1_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl2_1_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl2_1_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl2_1_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl2_1_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl2_1_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl2_1_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl2_1_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl2_1_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl2_1_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl2_1_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl2_1_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl2_1_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl2_1_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl2_1_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl2_1_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl2_1_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl2_1_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl2_1_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl2_1_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl2_1_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl2_1_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl2_1_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl2_1_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl2_1_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl2_1_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl2_1_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl2_1_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl2_1_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl2_1_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl2_1_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl2_1_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl2_1_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl2_1_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl2_1_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl2_1_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl2_1_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl2_1_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl2_1_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl2_1_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl2_1_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl2_1_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl2_1_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl2_1_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl2_1_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl2_1_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl2_1_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl2_1_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl2_1_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl2_1_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl2_1_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl2_1_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl2_1_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl2_1_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl2_1_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl2_1_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl2_1_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl2_1_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl2_1_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl2_1_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl2_1_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl2_1_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl2_1_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl2_1_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl2_1_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl2_1_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl2_1_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl2_1_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl2_1_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl2_1_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl2_1_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4usv.xml
+func (gl *GL) VertexAttrib4usv(index glbase.Attrib, v []uint16) {
+ C.gl2_1_glVertexAttrib4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4uiv.xml
+func (gl *GL) VertexAttrib4uiv(index glbase.Attrib, v []uint32) {
+ C.gl2_1_glVertexAttrib4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4ubv.xml
+func (gl *GL) VertexAttrib4ubv(index glbase.Attrib, v []uint8) {
+ C.gl2_1_glVertexAttrib4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4sv.xml
+func (gl *GL) VertexAttrib4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4s.xml
+func (gl *GL) VertexAttrib4s(index glbase.Attrib, x, y, z, w int16) {
+ C.gl2_1_glVertexAttrib4s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4iv.xml
+func (gl *GL) VertexAttrib4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gl2_1_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4dv.xml
+func (gl *GL) VertexAttrib4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4d.xml
+func (gl *GL) VertexAttrib4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl2_1_glVertexAttrib4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4bv.xml
+func (gl *GL) VertexAttrib4bv(index glbase.Attrib, v []byte) {
+ C.gl2_1_glVertexAttrib4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nusv.xml
+func (gl *GL) VertexAttrib4Nusv(index glbase.Attrib, v []uint16) {
+ C.gl2_1_glVertexAttrib4Nusv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nuiv.xml
+func (gl *GL) VertexAttrib4Nuiv(index glbase.Attrib, v []uint32) {
+ C.gl2_1_glVertexAttrib4Nuiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nubv.xml
+func (gl *GL) VertexAttrib4Nubv(index glbase.Attrib, v []uint8) {
+ C.gl2_1_glVertexAttrib4Nubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nub.xml
+func (gl *GL) VertexAttrib4Nub(index glbase.Attrib, x, y, z, w uint8) {
+ C.gl2_1_glVertexAttrib4Nub(gl.funcs, C.GLuint(index), C.GLubyte(x), C.GLubyte(y), C.GLubyte(z), C.GLubyte(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nsv.xml
+func (gl *GL) VertexAttrib4Nsv(index glbase.Attrib, v []int16) {
+ C.gl2_1_glVertexAttrib4Nsv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Niv.xml
+func (gl *GL) VertexAttrib4Niv(index glbase.Attrib, v []int32) {
+ C.gl2_1_glVertexAttrib4Niv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4Nbv.xml
+func (gl *GL) VertexAttrib4Nbv(index glbase.Attrib, v []byte) {
+ C.gl2_1_glVertexAttrib4Nbv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3sv.xml
+func (gl *GL) VertexAttrib3sv(index glbase.Attrib, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib3sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3s.xml
+func (gl *GL) VertexAttrib3s(index glbase.Attrib, x, y, z int16) {
+ C.gl2_1_glVertexAttrib3s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gl2_1_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3dv.xml
+func (gl *GL) VertexAttrib3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3d.xml
+func (gl *GL) VertexAttrib3d(index glbase.Attrib, x, y, z float64) {
+ C.gl2_1_glVertexAttrib3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2sv.xml
+func (gl *GL) VertexAttrib2sv(index glbase.Attrib, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib2sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2s.xml
+func (gl *GL) VertexAttrib2s(index glbase.Attrib, x, y int16) {
+ C.gl2_1_glVertexAttrib2s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gl2_1_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2dv.xml
+func (gl *GL) VertexAttrib2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl2_1_glVertexAttrib2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2d.xml
+func (gl *GL) VertexAttrib2d(index glbase.Attrib, x, y float64) {
+ C.gl2_1_glVertexAttrib2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1sv.xml
+func (gl *GL) VertexAttrib1sv(index glbase.Attrib, v []int16) {
+ C.gl2_1_glVertexAttrib1sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1s.xml
+func (gl *GL) VertexAttrib1s(index glbase.Attrib, x int16) {
+ C.gl2_1_glVertexAttrib1s(gl.funcs, C.GLuint(index), C.GLshort(x))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, v []float32) {
+ C.gl2_1_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gl2_1_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1dv.xml
+func (gl *GL) VertexAttrib1dv(index glbase.Attrib, v []float64) {
+ C.gl2_1_glVertexAttrib1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1d.xml
+func (gl *GL) VertexAttrib1d(index glbase.Attrib, x float64) {
+ C.gl2_1_glVertexAttrib1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/funcs.cpp
new file mode 100644
index 000000000..8d4262f9c
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/funcs.cpp
@@ -0,0 +1,3966 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_3_0.h>
+
+#include "funcs.h"
+
+void *gl3_0_funcs() {
+ QOpenGLFunctions_3_0* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_0>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl3_0_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl3_0_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl3_0_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl3_0_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl3_0_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl3_0_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl3_0_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl3_0_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl3_0_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl3_0_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl3_0_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl3_0_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl3_0_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl3_0_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl3_0_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl3_0_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl3_0_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl3_0_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl3_0_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl3_0_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl3_0_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl3_0_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl3_0_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl3_0_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl3_0_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl3_0_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl3_0_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl3_0_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl3_0_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl3_0_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl3_0_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl3_0_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl3_0_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl3_0_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl3_0_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl3_0_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl3_0_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl3_0_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl3_0_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl3_0_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl3_0_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl3_0_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl3_0_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl3_0_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl3_0_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl3_0_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl3_0_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl3_0_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl3_0_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl3_0_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl3_0_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl3_0_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl3_0_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl3_0_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl3_0_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl3_0_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl3_0_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl3_0_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl3_0_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl3_0_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl3_0_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl3_0_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl3_0_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl3_0_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_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl3_0_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_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl3_0_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl3_0_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl3_0_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl3_0_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl3_0_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl3_0_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl3_0_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_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl3_0_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl3_0_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl3_0_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl3_0_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl3_0_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl3_0_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl3_0_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl3_0_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl3_0_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl3_0_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl3_0_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl3_0_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl3_0_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl3_0_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl3_0_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl3_0_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl3_0_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl3_0_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl3_0_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl3_0_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl3_0_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl3_0_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl3_0_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl3_0_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl3_0_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl3_0_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl3_0_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl3_0_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl3_0_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl3_0_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl3_0_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl3_0_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl3_0_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl3_0_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl3_0_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl3_0_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl3_0_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl3_0_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl3_0_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl3_0_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl3_0_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl3_0_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl3_0_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl3_0_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl3_0_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl3_0_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl3_0_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl3_0_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl3_0_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl3_0_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl3_0_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl3_0_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl3_0_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl3_0_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl3_0_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl3_0_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl3_0_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl3_0_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl3_0_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl3_0_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl3_0_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl3_0_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl3_0_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl3_0_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl3_0_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl3_0_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl3_0_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl3_0_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_0_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_0_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl3_0_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl3_0_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl3_0_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl3_0_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl3_0_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl3_0_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl3_0_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl3_0_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl3_0_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl3_0_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl3_0_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl3_0_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl3_0_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl3_0_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl3_0_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl3_0_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl3_0_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl3_0_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl3_0_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl3_0_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl3_0_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl3_0_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl3_0_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl3_0_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl3_0_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl3_0_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl3_0_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl3_0_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_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl3_0_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl3_0_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl3_0_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl3_0_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl3_0_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl3_0_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl3_0_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl3_0_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl3_0_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl3_0_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl3_0_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl3_0_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl3_0_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl3_0_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl3_0_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl3_0_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl3_0_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl3_0_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl3_0_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl3_0_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl3_0_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl3_0_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl3_0_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl3_0_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl3_0_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl3_0_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl3_0_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl3_0_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl3_0_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl3_0_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl3_0_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl3_0_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl3_0_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl3_0_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl3_0_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl3_0_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl3_0_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl3_0_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl3_0_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl3_0_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl3_0_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl3_0_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl3_0_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_0_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl3_0_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl3_0_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl3_0_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl3_0_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl3_0_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl3_0_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl3_0_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl3_0_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl3_0_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl3_0_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl3_0_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl3_0_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl3_0_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl3_0_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl3_0_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl3_0_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl3_0_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl3_0_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl3_0_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl3_0_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl3_0_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl3_0_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl3_0_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl3_0_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl3_0_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl3_0_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl3_0_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl3_0_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl3_0_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl3_0_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl3_0_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl3_0_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl3_0_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl3_0_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl3_0_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl3_0_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl3_0_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl3_0_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl3_0_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl3_0_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl3_0_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl3_0_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl3_0_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl3_0_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl3_0_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl3_0_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl3_0_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl3_0_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl3_0_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl3_0_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl3_0_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl3_0_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl3_0_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl3_0_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl3_0_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl3_0_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl3_0_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl3_0_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl3_0_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl3_0_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl3_0_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl3_0_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl3_0_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl3_0_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl3_0_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl3_0_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl3_0_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl3_0_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl3_0_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl3_0_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl3_0_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl3_0_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl3_0_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl3_0_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl3_0_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl3_0_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl3_0_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl3_0_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl3_0_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl3_0_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl3_0_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl3_0_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl3_0_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl3_0_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl3_0_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl3_0_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl3_0_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl3_0_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl3_0_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl3_0_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl3_0_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl3_0_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl3_0_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl3_0_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl3_0_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl3_0_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl3_0_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl3_0_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl3_0_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl3_0_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl3_0_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl3_0_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl3_0_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl3_0_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl3_0_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl3_0_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl3_0_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl3_0_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl3_0_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl3_0_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl3_0_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl3_0_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl3_0_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl3_0_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl3_0_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl3_0_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl3_0_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl3_0_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl3_0_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl3_0_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl3_0_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl3_0_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl3_0_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl3_0_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl3_0_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl3_0_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl3_0_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl3_0_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl3_0_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl3_0_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl3_0_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl3_0_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl3_0_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl3_0_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl3_0_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl3_0_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl3_0_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl3_0_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl3_0_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl3_0_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl3_0_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl3_0_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl3_0_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl3_0_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl3_0_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl3_0_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl3_0_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl3_0_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl3_0_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl3_0_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl3_0_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl3_0_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl3_0_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl3_0_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl3_0_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl3_0_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl3_0_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl3_0_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl3_0_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl3_0_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl3_0_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl3_0_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl3_0_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl3_0_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl3_0_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl3_0_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl3_0_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl3_0_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl3_0_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl3_0_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl3_0_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl3_0_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl3_0_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl3_0_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl3_0_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl3_0_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl3_0_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl3_0_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl3_0_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl3_0_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl3_0_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl3_0_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl3_0_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl3_0_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl3_0_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl3_0_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl3_0_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl3_0_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl3_0_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl3_0_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl3_0_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl3_0_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl3_0_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl3_0_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl3_0_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl3_0_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl3_0_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl3_0_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl3_0_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl3_0_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl3_0_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl3_0_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl3_0_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl3_0_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl3_0_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl3_0_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl3_0_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl3_0_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl3_0_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl3_0_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl3_0_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl3_0_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl3_0_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl3_0_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl3_0_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl3_0_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl3_0_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl3_0_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl3_0_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl3_0_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl3_0_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl3_0_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl3_0_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl3_0_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl3_0_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl3_0_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl3_0_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl3_0_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl3_0_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl3_0_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl3_0_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl3_0_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl3_0_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl3_0_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl3_0_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl3_0_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl3_0_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl3_0_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl3_0_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl3_0_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl3_0_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl3_0_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl3_0_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl3_0_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl3_0_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl3_0_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl3_0_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl3_0_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl3_0_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl3_0_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl3_0_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl3_0_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl3_0_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl3_0_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl3_0_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl3_0_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl3_0_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl3_0_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl3_0_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl3_0_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl3_0_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl3_0_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl3_0_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl3_0_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl3_0_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl3_0_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl3_0_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl3_0_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl3_0_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl3_0_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl3_0_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl3_0_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl3_0_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl3_0_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl3_0_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl3_0_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl3_0_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl3_0_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl3_0_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl3_0_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl3_0_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl3_0_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl3_0_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl3_0_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl3_0_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl3_0_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl3_0_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl3_0_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl3_0_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl3_0_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl3_0_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl3_0_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl3_0_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl3_0_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl3_0_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl3_0_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl3_0_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl3_0_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl3_0_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl3_0_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl3_0_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl3_0_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl3_0_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl3_0_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl3_0_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl3_0_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl3_0_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl3_0_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl3_0_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl3_0_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl3_0_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl3_0_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl3_0_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl3_0_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl3_0_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl3_0_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl3_0_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl3_0_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl3_0_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl3_0_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl3_0_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl3_0_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl3_0_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl3_0_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl3_0_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl3_0_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl3_0_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl3_0_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl3_0_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl3_0_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl3_0_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl3_0_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl3_0_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl3_0_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl3_0_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl3_0_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl3_0_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl3_0_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl3_0_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl3_0_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl3_0_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl3_0_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl3_0_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl3_0_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl3_0_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl3_0_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl3_0_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl3_0_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl3_0_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl3_0_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl3_0_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl3_0_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl3_0_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl3_0_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl3_0_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl3_0_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl3_0_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl3_0_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl3_0_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl3_0_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl3_0_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl3_0_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl3_0_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl3_0_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl3_0_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl3_0_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl3_0_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl3_0_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl3_0_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl3_0_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl3_0_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl3_0_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl3_0_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl3_0_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl3_0_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl3_0_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl3_0_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl3_0_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl3_0_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl3_0_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl3_0_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl3_0_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl3_0_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl3_0_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl3_0_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl3_0_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl3_0_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl3_0_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
+void gl3_0_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4usv(index, v);
+}
+
+void gl3_0_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4uiv(index, v);
+}
+
+void gl3_0_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4ubv(index, v);
+}
+
+void gl3_0_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4sv(index, v);
+}
+
+void gl3_0_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4s(index, x, y, z, w);
+}
+
+void gl3_0_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4iv(index, v);
+}
+
+void gl3_0_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, v);
+}
+
+void gl3_0_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gl3_0_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4dv(index, v);
+}
+
+void gl3_0_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4d(index, x, y, z, w);
+}
+
+void gl3_0_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4bv(index, v);
+}
+
+void gl3_0_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nusv(index, v);
+}
+
+void gl3_0_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nuiv(index, v);
+}
+
+void gl3_0_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nubv(index, v);
+}
+
+void gl3_0_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nub(index, x, y, z, w);
+}
+
+void gl3_0_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nsv(index, v);
+}
+
+void gl3_0_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Niv(index, v);
+}
+
+void gl3_0_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nbv(index, v);
+}
+
+void gl3_0_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3sv(index, v);
+}
+
+void gl3_0_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3s(index, x, y, z);
+}
+
+void gl3_0_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, v);
+}
+
+void gl3_0_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gl3_0_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3dv(index, v);
+}
+
+void gl3_0_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3d(index, x, y, z);
+}
+
+void gl3_0_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2sv(index, v);
+}
+
+void gl3_0_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2s(index, x, y);
+}
+
+void gl3_0_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, v);
+}
+
+void gl3_0_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gl3_0_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2dv(index, v);
+}
+
+void gl3_0_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2d(index, x, y);
+}
+
+void gl3_0_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1sv(index, v);
+}
+
+void gl3_0_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1s(index, x);
+}
+
+void gl3_0_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, v);
+}
+
+void gl3_0_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gl3_0_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1dv(index, v);
+}
+
+void gl3_0_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1d(index, x);
+}
+
+void gl3_0_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4usv(index, v);
+}
+
+void gl3_0_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ubv(index, v);
+}
+
+void gl3_0_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4sv(index, v);
+}
+
+void gl3_0_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4bv(index, v);
+}
+
+void gl3_0_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4uiv(index, v);
+}
+
+void gl3_0_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3uiv(index, v);
+}
+
+void gl3_0_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2uiv(index, v);
+}
+
+void gl3_0_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1uiv(index, v);
+}
+
+void gl3_0_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4iv(index, v);
+}
+
+void gl3_0_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3iv(index, v);
+}
+
+void gl3_0_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2iv(index, v);
+}
+
+void gl3_0_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1iv(index, v);
+}
+
+void gl3_0_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ui(index, x, y, z, w);
+}
+
+void gl3_0_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3ui(index, x, y, z);
+}
+
+void gl3_0_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2ui(index, x, y);
+}
+
+void gl3_0_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1ui(index, x);
+}
+
+void gl3_0_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4i(index, x, y, z, w);
+}
+
+void gl3_0_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3i(index, x, y, z);
+}
+
+void gl3_0_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2i(index, x, y);
+}
+
+void gl3_0_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x)
+{
+ QOpenGLFunctions_3_0* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_0*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1i(index, x);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/funcs.h
new file mode 100644
index 000000000..81db33a9b
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/funcs.h
@@ -0,0 +1,700 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl3_0_funcs();
+
+void gl3_0_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_0_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl3_0_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl3_0_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl3_0_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl3_0_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_0_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_0_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_0_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl3_0_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl3_0_glGetError(void *_glfuncs);
+void gl3_0_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl3_0_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl3_0_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_0_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl3_0_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl3_0_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_0_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl3_0_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl3_0_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_0_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl3_0_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl3_0_glFlush(void *_glfuncs);
+void gl3_0_glFinish(void *_glfuncs);
+void gl3_0_glEnable(void *_glfuncs, GLenum cap);
+void gl3_0_glDisable(void *_glfuncs, GLenum cap);
+void gl3_0_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl3_0_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl3_0_glStencilMask(void *_glfuncs, GLuint mask);
+void gl3_0_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl3_0_glClearStencil(void *_glfuncs, GLint s);
+void gl3_0_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_0_glClear(void *_glfuncs, GLbitfield mask);
+void gl3_0_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl3_0_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_0_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_0_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_0_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl3_0_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_0_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl3_0_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_0_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl3_0_glPointSize(void *_glfuncs, GLfloat size);
+void gl3_0_glLineWidth(void *_glfuncs, GLfloat width);
+void gl3_0_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl3_0_glFrontFace(void *_glfuncs, GLenum mode);
+void gl3_0_glCullFace(void *_glfuncs, GLenum mode);
+void gl3_0_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl3_0_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl3_0_glIsTexture(void *_glfuncs, GLuint texture);
+void gl3_0_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl3_0_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl3_0_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl3_0_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_0_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_0_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_0_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl3_0_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl3_0_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl3_0_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl3_0_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_0_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl3_0_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_0_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);
+void gl3_0_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_0_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_0_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl3_0_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_0_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl3_0_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_0_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_0_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);
+void gl3_0_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_0_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_0_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_0_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl3_0_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl3_0_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_0_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl3_0_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_0_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_0_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl3_0_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl3_0_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl3_0_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl3_0_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl3_0_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl3_0_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl3_0_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl3_0_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl3_0_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl3_0_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl3_0_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl3_0_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl3_0_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_0_glEndQuery(void *_glfuncs, GLenum target);
+void gl3_0_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl3_0_glIsQuery(void *_glfuncs, GLuint id);
+void gl3_0_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl3_0_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl3_0_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl3_0_glValidateProgram(void *_glfuncs, GLuint program);
+void gl3_0_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_0_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_0_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_0_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_0_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_0_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_0_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_0_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_0_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_0_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_0_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_0_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl3_0_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl3_0_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl3_0_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl3_0_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl3_0_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl3_0_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl3_0_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl3_0_glUseProgram(void *_glfuncs, GLuint program);
+void gl3_0_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl3_0_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl3_0_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl3_0_glIsProgram(void *_glfuncs, GLuint program);
+void gl3_0_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_0_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl3_0_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl3_0_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl3_0_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl3_0_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_0_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl3_0_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_0_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl3_0_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_0_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl3_0_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_0_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl3_0_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_0_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_0_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_0_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_0_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_0_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl3_0_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl3_0_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl3_0_glCreateProgram(void *_glfuncs);
+void gl3_0_glCompileShader(void *_glfuncs, GLuint shader);
+void gl3_0_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl3_0_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_0_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl3_0_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_0_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl3_0_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl3_0_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl3_0_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_0_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_0_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_0_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_0_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_0_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl3_0_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl3_0_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl3_0_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl3_0_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl3_0_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl3_0_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl3_0_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_0_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl3_0_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl3_0_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl3_0_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl3_0_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl3_0_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl3_0_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl3_0_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl3_0_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl3_0_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl3_0_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl3_0_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl3_0_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_0_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_0_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl3_0_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl3_0_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl3_0_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl3_0_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl3_0_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl3_0_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl3_0_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl3_0_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl3_0_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_0_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl3_0_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_0_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_0_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_0_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_0_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_0_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl3_0_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl3_0_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl3_0_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl3_0_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_0_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl3_0_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl3_0_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl3_0_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_0_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glEndConditionalRender(void *_glfuncs);
+void gl3_0_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl3_0_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl3_0_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl3_0_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl3_0_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl3_0_glEndTransformFeedback(void *_glfuncs);
+void gl3_0_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl3_0_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl3_0_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_0_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_0_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl3_0_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl3_0_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl3_0_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_0_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_0_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_0_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_0_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl3_0_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl3_0_glPushMatrix(void *_glfuncs);
+void gl3_0_glPopMatrix(void *_glfuncs);
+void gl3_0_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl3_0_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_0_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_0_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl3_0_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_0_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_0_glLoadIdentity(void *_glfuncs);
+void gl3_0_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl3_0_glIsList(void *_glfuncs, GLuint list);
+void gl3_0_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl3_0_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl3_0_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl3_0_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_0_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_0_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl3_0_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl3_0_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl3_0_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl3_0_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl3_0_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl3_0_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl3_0_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl3_0_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl3_0_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl3_0_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl3_0_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl3_0_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_0_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl3_0_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl3_0_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl3_0_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl3_0_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl3_0_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_0_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl3_0_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl3_0_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl3_0_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl3_0_glEvalPoint1(void *_glfuncs, GLint i);
+void gl3_0_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl3_0_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl3_0_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl3_0_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl3_0_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl3_0_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl3_0_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl3_0_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl3_0_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl3_0_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl3_0_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl3_0_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl3_0_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl3_0_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl3_0_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl3_0_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl3_0_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl3_0_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl3_0_glPopAttrib(void *_glfuncs);
+void gl3_0_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl3_0_glIndexMask(void *_glfuncs, GLuint mask);
+void gl3_0_glClearIndex(void *_glfuncs, GLfloat c);
+void gl3_0_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_0_glPushName(void *_glfuncs, GLuint name);
+void gl3_0_glPopName(void *_glfuncs);
+void gl3_0_glPassThrough(void *_glfuncs, GLfloat token);
+void gl3_0_glLoadName(void *_glfuncs, GLuint name);
+void gl3_0_glInitNames(void *_glfuncs);
+GLint gl3_0_glRenderMode(void *_glfuncs, GLenum mode);
+void gl3_0_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl3_0_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl3_0_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl3_0_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl3_0_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl3_0_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl3_0_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl3_0_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl3_0_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_0_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl3_0_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_0_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl3_0_glShadeModel(void *_glfuncs, GLenum mode);
+void gl3_0_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl3_0_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl3_0_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl3_0_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl3_0_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl3_0_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl3_0_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_0_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl3_0_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_0_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_0_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl3_0_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl3_0_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl3_0_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl3_0_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_0_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl3_0_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_0_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_0_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl3_0_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl3_0_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl3_0_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl3_0_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl3_0_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl3_0_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl3_0_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl3_0_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl3_0_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl3_0_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_0_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_0_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl3_0_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl3_0_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl3_0_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl3_0_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl3_0_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl3_0_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl3_0_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl3_0_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl3_0_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl3_0_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl3_0_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl3_0_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl3_0_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl3_0_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl3_0_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl3_0_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl3_0_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl3_0_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl3_0_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl3_0_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl3_0_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl3_0_glTexCoord1i(void *_glfuncs, GLint s);
+void gl3_0_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl3_0_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl3_0_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl3_0_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl3_0_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl3_0_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl3_0_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl3_0_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl3_0_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl3_0_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl3_0_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl3_0_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl3_0_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl3_0_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl3_0_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl3_0_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl3_0_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl3_0_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl3_0_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_0_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_0_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl3_0_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl3_0_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl3_0_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl3_0_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl3_0_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl3_0_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl3_0_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl3_0_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl3_0_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl3_0_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl3_0_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl3_0_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl3_0_glIndexs(void *_glfuncs, GLshort c);
+void gl3_0_glIndexiv(void *_glfuncs, const GLint* c);
+void gl3_0_glIndexi(void *_glfuncs, GLint c);
+void gl3_0_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl3_0_glIndexf(void *_glfuncs, GLfloat c);
+void gl3_0_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl3_0_glIndexd(void *_glfuncs, GLdouble c);
+void gl3_0_glEnd(void *_glfuncs);
+void gl3_0_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl3_0_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl3_0_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl3_0_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl3_0_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl3_0_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl3_0_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl3_0_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl3_0_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl3_0_glColor4iv(void *_glfuncs, const GLint* v);
+void gl3_0_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl3_0_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_0_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl3_0_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl3_0_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl3_0_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl3_0_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl3_0_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl3_0_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl3_0_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl3_0_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl3_0_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl3_0_glColor3iv(void *_glfuncs, const GLint* v);
+void gl3_0_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl3_0_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl3_0_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl3_0_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl3_0_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl3_0_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl3_0_glBegin(void *_glfuncs, GLenum mode);
+void gl3_0_glListBase(void *_glfuncs, GLuint base);
+GLuint gl3_0_glGenLists(void *_glfuncs, GLsizei range_);
+void gl3_0_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl3_0_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl3_0_glCallList(void *_glfuncs, GLuint list);
+void gl3_0_glEndList(void *_glfuncs);
+void gl3_0_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl3_0_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl3_0_glPopClientAttrib(void *_glfuncs);
+void gl3_0_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl3_0_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl3_0_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glEnableClientState(void *_glfuncs, GLenum array);
+void gl3_0_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glDisableClientState(void *_glfuncs, GLenum array);
+void gl3_0_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glArrayElement(void *_glfuncs, GLint i);
+void gl3_0_glResetMinmax(void *_glfuncs, GLenum target);
+void gl3_0_glResetHistogram(void *_glfuncs, GLenum target);
+void gl3_0_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl3_0_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl3_0_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_0_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_0_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl3_0_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_0_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_0_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl3_0_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl3_0_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl3_0_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_0_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_0_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl3_0_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_0_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl3_0_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_0_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl3_0_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_0_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl3_0_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl3_0_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl3_0_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl3_0_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl3_0_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_0_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_0_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl3_0_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl3_0_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_0_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_0_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl3_0_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_0_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_0_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_0_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_0_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_0_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl3_0_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_0_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl3_0_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_0_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl3_0_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_0_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl3_0_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_0_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl3_0_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_0_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl3_0_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_0_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl3_0_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_0_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl3_0_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_0_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl3_0_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_0_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl3_0_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_0_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl3_0_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_0_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl3_0_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_0_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl3_0_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_0_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl3_0_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_0_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl3_0_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_0_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl3_0_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl3_0_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl3_0_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl3_0_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl3_0_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_0_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_0_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl3_0_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl3_0_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl3_0_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl3_0_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl3_0_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl3_0_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl3_0_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl3_0_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl3_0_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl3_0_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl3_0_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl3_0_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl3_0_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl3_0_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl3_0_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl3_0_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl3_0_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl3_0_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl3_0_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl3_0_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl3_0_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_0_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl3_0_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl3_0_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl3_0_glFogCoordf(void *_glfuncs, GLfloat coord);
+void gl3_0_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl3_0_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_0_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl3_0_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_0_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl3_0_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_0_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_0_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl3_0_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_0_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl3_0_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl3_0_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl3_0_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_0_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl3_0_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+void gl3_0_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_0_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_0_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl3_0_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_0_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z);
+void gl3_0_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_0_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gl3_0_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_0_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl3_0_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_0_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y);
+void gl3_0_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_0_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gl3_0_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_0_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl3_0_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_0_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x);
+void gl3_0_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_0_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gl3_0_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_0_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl3_0_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl3_0_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl3_0_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_0_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl3_0_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_0_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_0_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_0_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_0_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_0_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_0_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_0_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_0_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+void gl3_0_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z);
+void gl3_0_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y);
+void gl3_0_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x);
+void gl3_0_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w);
+void gl3_0_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z);
+void gl3_0_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y);
+void gl3_0_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/gl.go
new file mode 100644
index 000000000..a8509aecd
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.0/gl.go
@@ -0,0 +1,7663 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 3.0 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl3_0_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 3.0 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 3.0 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+)
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl3_0_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl3_0_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl3_0_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl3_0_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl3_0_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl3_0_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl3_0_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl3_0_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl3_0_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl3_0_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl3_0_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_0_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl3_0_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl3_0_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl3_0_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl3_0_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl3_0_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl3_0_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl3_0_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl3_0_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl3_0_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl3_0_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl3_0_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl3_0_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl3_0_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl3_0_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl3_0_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl3_0_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl3_0_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl3_0_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl3_0_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl3_0_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl3_0_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl3_0_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl3_0_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl3_0_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl3_0_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl3_0_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl3_0_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl3_0_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl3_0_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl3_0_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl3_0_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl3_0_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl3_0_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl3_0_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl3_0_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl3_0_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl3_0_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl3_0_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl3_0_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl3_0_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl3_0_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl3_0_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl3_0_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl3_0_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl3_0_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl3_0_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl3_0_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl3_0_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl3_0_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl3_0_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_0_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_0_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl3_0_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl3_0_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl3_0_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl3_0_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl3_0_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl3_0_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl3_0_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl3_0_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl3_0_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl3_0_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl3_0_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl3_0_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl3_0_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl3_0_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_0_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl3_0_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl3_0_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl3_0_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_0_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl3_0_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl3_0_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl3_0_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl3_0_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl3_0_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl3_0_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl3_0_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl3_0_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl3_0_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl3_0_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl3_0_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl3_0_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl3_0_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_0_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl3_0_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl3_0_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl3_0_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl3_0_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_0_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl3_0_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_0_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_0_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_0_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_0_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_0_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl3_0_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_0_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_0_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_0_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_0_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_0_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl3_0_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl3_0_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl3_0_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl3_0_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl3_0_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl3_0_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_0_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl3_0_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_0_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl3_0_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl3_0_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl3_0_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl3_0_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl3_0_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl3_0_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl3_0_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl3_0_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl3_0_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl3_0_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl3_0_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl3_0_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl3_0_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl3_0_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl3_0_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl3_0_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl3_0_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl3_0_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_0_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl3_0_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_0_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_0_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl3_0_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl3_0_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_0_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl3_0_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl3_0_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl3_0_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl3_0_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_0_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_0_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl3_0_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl3_0_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl3_0_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl3_0_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl3_0_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_0_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_0_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl3_0_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl3_0_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl3_0_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_0_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl3_0_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl3_0_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl3_0_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl3_0_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl3_0_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl3_0_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl3_0_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl3_0_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl3_0_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl3_0_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl3_0_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_0_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl3_0_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl3_0_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl3_0_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl3_0_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl3_0_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl3_0_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl3_0_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl3_0_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl3_0_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl3_0_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl3_0_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl3_0_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl3_0_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl3_0_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl3_0_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl3_0_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl3_0_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl3_0_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl3_0_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl3_0_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl3_0_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl3_0_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl3_0_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl3_0_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl3_0_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl3_0_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl3_0_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl3_0_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl3_0_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl3_0_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl3_0_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl3_0_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl3_0_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl3_0_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl3_0_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl3_0_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl3_0_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl3_0_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl3_0_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl3_0_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl3_0_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl3_0_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl3_0_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl3_0_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl3_0_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl3_0_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl3_0_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl3_0_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl3_0_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl3_0_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl3_0_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl3_0_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl3_0_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl3_0_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl3_0_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl3_0_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl3_0_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl3_0_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl3_0_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl3_0_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl3_0_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl3_0_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl3_0_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl3_0_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl3_0_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl3_0_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl3_0_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl3_0_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl3_0_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl3_0_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl3_0_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl3_0_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl3_0_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl3_0_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl3_0_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl3_0_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl3_0_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl3_0_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl3_0_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl3_0_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl3_0_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl3_0_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl3_0_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl3_0_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl3_0_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl3_0_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl3_0_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl3_0_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl3_0_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl3_0_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl3_0_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl3_0_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl3_0_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl3_0_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl3_0_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl3_0_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl3_0_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl3_0_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl3_0_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl3_0_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl3_0_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl3_0_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl3_0_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl3_0_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl3_0_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl3_0_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl3_0_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl3_0_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl3_0_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl3_0_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl3_0_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl3_0_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl3_0_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl3_0_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl3_0_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl3_0_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl3_0_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl3_0_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl3_0_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl3_0_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl3_0_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl3_0_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl3_0_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl3_0_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl3_0_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl3_0_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl3_0_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl3_0_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl3_0_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl3_0_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl3_0_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl3_0_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl3_0_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl3_0_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl3_0_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl3_0_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl3_0_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl3_0_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl3_0_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl3_0_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl3_0_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl3_0_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl3_0_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl3_0_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl3_0_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl3_0_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl3_0_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl3_0_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl3_0_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl3_0_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl3_0_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl3_0_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl3_0_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl3_0_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl3_0_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl3_0_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl3_0_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl3_0_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl3_0_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl3_0_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl3_0_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl3_0_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl3_0_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl3_0_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl3_0_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl3_0_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl3_0_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl3_0_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl3_0_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl3_0_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl3_0_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl3_0_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl3_0_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl3_0_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl3_0_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl3_0_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl3_0_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl3_0_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl3_0_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl3_0_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl3_0_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl3_0_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl3_0_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl3_0_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl3_0_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl3_0_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl3_0_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl3_0_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl3_0_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl3_0_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl3_0_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl3_0_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl3_0_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl3_0_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl3_0_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl3_0_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl3_0_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl3_0_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl3_0_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl3_0_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl3_0_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl3_0_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl3_0_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl3_0_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl3_0_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl3_0_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl3_0_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl3_0_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl3_0_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl3_0_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl3_0_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl3_0_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl3_0_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl3_0_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl3_0_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl3_0_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl3_0_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl3_0_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl3_0_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl3_0_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl3_0_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl3_0_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl3_0_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl3_0_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl3_0_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_0_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_0_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl3_0_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl3_0_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl3_0_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl3_0_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl3_0_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl3_0_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl3_0_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl3_0_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl3_0_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl3_0_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl3_0_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl3_0_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl3_0_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl3_0_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl3_0_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl3_0_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl3_0_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl3_0_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl3_0_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl3_0_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl3_0_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl3_0_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl3_0_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl3_0_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl3_0_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl3_0_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl3_0_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl3_0_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl3_0_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl3_0_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl3_0_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl3_0_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl3_0_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl3_0_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl3_0_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl3_0_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl3_0_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl3_0_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl3_0_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl3_0_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl3_0_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl3_0_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl3_0_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl3_0_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl3_0_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_0_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl3_0_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl3_0_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl3_0_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl3_0_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4usv.xml
+func (gl *GL) VertexAttrib4usv(index glbase.Attrib, v []uint16) {
+ C.gl3_0_glVertexAttrib4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4uiv.xml
+func (gl *GL) VertexAttrib4uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_0_glVertexAttrib4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4ubv.xml
+func (gl *GL) VertexAttrib4ubv(index glbase.Attrib, v []uint8) {
+ C.gl3_0_glVertexAttrib4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4sv.xml
+func (gl *GL) VertexAttrib4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4s.xml
+func (gl *GL) VertexAttrib4s(index glbase.Attrib, x, y, z, w int16) {
+ C.gl3_0_glVertexAttrib4s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4iv.xml
+func (gl *GL) VertexAttrib4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gl3_0_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4dv.xml
+func (gl *GL) VertexAttrib4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4d.xml
+func (gl *GL) VertexAttrib4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl3_0_glVertexAttrib4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4bv.xml
+func (gl *GL) VertexAttrib4bv(index glbase.Attrib, v []byte) {
+ C.gl3_0_glVertexAttrib4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nusv.xml
+func (gl *GL) VertexAttrib4Nusv(index glbase.Attrib, v []uint16) {
+ C.gl3_0_glVertexAttrib4Nusv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nuiv.xml
+func (gl *GL) VertexAttrib4Nuiv(index glbase.Attrib, v []uint32) {
+ C.gl3_0_glVertexAttrib4Nuiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nubv.xml
+func (gl *GL) VertexAttrib4Nubv(index glbase.Attrib, v []uint8) {
+ C.gl3_0_glVertexAttrib4Nubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nub.xml
+func (gl *GL) VertexAttrib4Nub(index glbase.Attrib, x, y, z, w uint8) {
+ C.gl3_0_glVertexAttrib4Nub(gl.funcs, C.GLuint(index), C.GLubyte(x), C.GLubyte(y), C.GLubyte(z), C.GLubyte(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nsv.xml
+func (gl *GL) VertexAttrib4Nsv(index glbase.Attrib, v []int16) {
+ C.gl3_0_glVertexAttrib4Nsv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Niv.xml
+func (gl *GL) VertexAttrib4Niv(index glbase.Attrib, v []int32) {
+ C.gl3_0_glVertexAttrib4Niv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nbv.xml
+func (gl *GL) VertexAttrib4Nbv(index glbase.Attrib, v []byte) {
+ C.gl3_0_glVertexAttrib4Nbv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3sv.xml
+func (gl *GL) VertexAttrib3sv(index glbase.Attrib, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib3sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3s.xml
+func (gl *GL) VertexAttrib3s(index glbase.Attrib, x, y, z int16) {
+ C.gl3_0_glVertexAttrib3s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gl3_0_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3dv.xml
+func (gl *GL) VertexAttrib3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3d.xml
+func (gl *GL) VertexAttrib3d(index glbase.Attrib, x, y, z float64) {
+ C.gl3_0_glVertexAttrib3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2sv.xml
+func (gl *GL) VertexAttrib2sv(index glbase.Attrib, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib2sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2s.xml
+func (gl *GL) VertexAttrib2s(index glbase.Attrib, x, y int16) {
+ C.gl3_0_glVertexAttrib2s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gl3_0_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2dv.xml
+func (gl *GL) VertexAttrib2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttrib2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2d.xml
+func (gl *GL) VertexAttrib2d(index glbase.Attrib, x, y float64) {
+ C.gl3_0_glVertexAttrib2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1sv.xml
+func (gl *GL) VertexAttrib1sv(index glbase.Attrib, v []int16) {
+ C.gl3_0_glVertexAttrib1sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1s.xml
+func (gl *GL) VertexAttrib1s(index glbase.Attrib, x int16) {
+ C.gl3_0_glVertexAttrib1s(gl.funcs, C.GLuint(index), C.GLshort(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, v []float32) {
+ C.gl3_0_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gl3_0_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1dv.xml
+func (gl *GL) VertexAttrib1dv(index glbase.Attrib, v []float64) {
+ C.gl3_0_glVertexAttrib1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1d.xml
+func (gl *GL) VertexAttrib1d(index glbase.Attrib, x float64) {
+ C.gl3_0_glVertexAttrib1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4usv.xml
+func (gl *GL) VertexAttribI4usv(index glbase.Attrib, v []uint16) {
+ C.gl3_0_glVertexAttribI4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4ubv.xml
+func (gl *GL) VertexAttribI4ubv(index glbase.Attrib, v []uint8) {
+ C.gl3_0_glVertexAttribI4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4sv.xml
+func (gl *GL) VertexAttribI4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttribI4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4bv.xml
+func (gl *GL) VertexAttribI4bv(index glbase.Attrib, v []byte) {
+ C.gl3_0_glVertexAttribI4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4uiv.xml
+func (gl *GL) VertexAttribI4uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_0_glVertexAttribI4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3uiv.xml
+func (gl *GL) VertexAttribI3uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_0_glVertexAttribI3uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2uiv.xml
+func (gl *GL) VertexAttribI2uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_0_glVertexAttribI2uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1uiv.xml
+func (gl *GL) VertexAttribI1uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_0_glVertexAttribI1uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4iv.xml
+func (gl *GL) VertexAttribI4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttribI4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3iv.xml
+func (gl *GL) VertexAttribI3iv(index glbase.Attrib, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttribI3iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2iv.xml
+func (gl *GL) VertexAttribI2iv(index glbase.Attrib, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_0_glVertexAttribI2iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1iv.xml
+func (gl *GL) VertexAttribI1iv(index glbase.Attrib, v []int32) {
+ C.gl3_0_glVertexAttribI1iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4ui.xml
+func (gl *GL) VertexAttribI4ui(index glbase.Attrib, x, y, z, w uint32) {
+ C.gl3_0_glVertexAttribI4ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z), C.GLuint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3ui.xml
+func (gl *GL) VertexAttribI3ui(index glbase.Attrib, x, y, z uint32) {
+ C.gl3_0_glVertexAttribI3ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2ui.xml
+func (gl *GL) VertexAttribI2ui(index glbase.Attrib, x, y uint32) {
+ C.gl3_0_glVertexAttribI2ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1ui.xml
+func (gl *GL) VertexAttribI1ui(index glbase.Attrib, x uint32) {
+ C.gl3_0_glVertexAttribI1ui(gl.funcs, C.GLuint(index), C.GLuint(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4i.xml
+func (gl *GL) VertexAttribI4i(index glbase.Attrib, x, y, z, w int) {
+ C.gl3_0_glVertexAttribI4i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3i.xml
+func (gl *GL) VertexAttribI3i(index glbase.Attrib, x, y, z int) {
+ C.gl3_0_glVertexAttribI3i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2i.xml
+func (gl *GL) VertexAttribI2i(index glbase.Attrib, x, y int) {
+ C.gl3_0_glVertexAttribI2i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1i.xml
+func (gl *GL) VertexAttribI1i(index glbase.Attrib, x int) {
+ C.gl3_0_glVertexAttribI1i(gl.funcs, C.GLuint(index), C.GLint(x))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/funcs.cpp
new file mode 100644
index 000000000..7f9846760
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/funcs.cpp
@@ -0,0 +1,1422 @@
+
+// ** 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);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/funcs.h
new file mode 100644
index 000000000..b06680d6e
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/funcs.h
@@ -0,0 +1,276 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl3_1_funcs();
+
+void gl3_1_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_1_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl3_1_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl3_1_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl3_1_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl3_1_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_1_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_1_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_1_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl3_1_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl3_1_glGetError(void *_glfuncs);
+void gl3_1_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl3_1_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl3_1_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_1_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl3_1_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl3_1_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_1_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl3_1_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl3_1_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_1_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl3_1_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl3_1_glFlush(void *_glfuncs);
+void gl3_1_glFinish(void *_glfuncs);
+void gl3_1_glEnable(void *_glfuncs, GLenum cap);
+void gl3_1_glDisable(void *_glfuncs, GLenum cap);
+void gl3_1_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl3_1_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl3_1_glStencilMask(void *_glfuncs, GLuint mask);
+void gl3_1_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl3_1_glClearStencil(void *_glfuncs, GLint s);
+void gl3_1_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_1_glClear(void *_glfuncs, GLbitfield mask);
+void gl3_1_glDrawBuffer(void *_glfuncs, GLenum 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);
+void gl3_1_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_1_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_1_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl3_1_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_1_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl3_1_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_1_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl3_1_glPointSize(void *_glfuncs, GLfloat size);
+void gl3_1_glLineWidth(void *_glfuncs, GLfloat width);
+void gl3_1_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl3_1_glFrontFace(void *_glfuncs, GLenum mode);
+void gl3_1_glCullFace(void *_glfuncs, GLenum mode);
+void gl3_1_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl3_1_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl3_1_glIsTexture(void *_glfuncs, GLuint texture);
+void gl3_1_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl3_1_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl3_1_glBindTexture(void *_glfuncs, GLenum target, GLuint 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);
+void gl3_1_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_1_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_1_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl3_1_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl3_1_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl3_1_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl3_1_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_1_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei 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);
+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);
+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);
+void gl3_1_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_1_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl3_1_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_1_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl3_1_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* 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);
+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);
+void gl3_1_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_1_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* 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);
+void gl3_1_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl3_1_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl3_1_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_1_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl3_1_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_1_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_1_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl3_1_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl3_1_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl3_1_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl3_1_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl3_1_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl3_1_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl3_1_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl3_1_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl3_1_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl3_1_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl3_1_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl3_1_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl3_1_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_1_glEndQuery(void *_glfuncs, GLenum target);
+void gl3_1_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl3_1_glIsQuery(void *_glfuncs, GLuint id);
+void gl3_1_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl3_1_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl3_1_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl3_1_glValidateProgram(void *_glfuncs, GLuint program);
+void gl3_1_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_1_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_1_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_1_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_1_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_1_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_1_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_1_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_1_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_1_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_1_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_1_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl3_1_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl3_1_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl3_1_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl3_1_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl3_1_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl3_1_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl3_1_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl3_1_glUseProgram(void *_glfuncs, GLuint program);
+void gl3_1_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl3_1_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl3_1_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl3_1_glIsProgram(void *_glfuncs, GLuint program);
+void gl3_1_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_1_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl3_1_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl3_1_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl3_1_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl3_1_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_1_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl3_1_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_1_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl3_1_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_1_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl3_1_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_1_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl3_1_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_1_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_1_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_1_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_1_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_1_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl3_1_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl3_1_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl3_1_glCreateProgram(void *_glfuncs);
+void gl3_1_glCompileShader(void *_glfuncs, GLuint shader);
+void gl3_1_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl3_1_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_1_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl3_1_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_1_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl3_1_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl3_1_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl3_1_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_1_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_1_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_1_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_1_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_1_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl3_1_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl3_1_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl3_1_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl3_1_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl3_1_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl3_1_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl3_1_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei 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);
+void gl3_1_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl3_1_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl3_1_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl3_1_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl3_1_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl3_1_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl3_1_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl3_1_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl3_1_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl3_1_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl3_1_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl3_1_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_1_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_1_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl3_1_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl3_1_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl3_1_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl3_1_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl3_1_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl3_1_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl3_1_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl3_1_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl3_1_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_1_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl3_1_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_1_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_1_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_1_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_1_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_1_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl3_1_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl3_1_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl3_1_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl3_1_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_1_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl3_1_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl3_1_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl3_1_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_1_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_1_glEndConditionalRender(void *_glfuncs);
+void gl3_1_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl3_1_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl3_1_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl3_1_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl3_1_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl3_1_glEndTransformFeedback(void *_glfuncs);
+void gl3_1_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl3_1_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl3_1_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_1_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_1_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl3_1_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl3_1_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl3_1_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl3_1_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl3_1_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl3_1_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl3_1_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl3_1_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl3_1_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl3_1_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl3_1_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl3_1_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl3_1_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/gl.go
new file mode 100644
index 000000000..495e07b3c
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.1/gl.go
@@ -0,0 +1,4999 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 3.1 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl3_1_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 3.1 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 3.1 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ INVALID_INDEX = 0xFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+)
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl3_1_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl3_1_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl3_1_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl3_1_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_1_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl3_1_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl3_1_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl3_1_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl3_1_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl3_1_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl3_1_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl3_1_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl3_1_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl3_1_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_1_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl3_1_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl3_1_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl3_1_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl3_1_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl3_1_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl3_1_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl3_1_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl3_1_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl3_1_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl3_1_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl3_1_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl3_1_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl3_1_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl3_1_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_1_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl3_1_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_1_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl3_1_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl3_1_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl3_1_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl3_1_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl3_1_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl3_1_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl3_1_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl3_1_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl3_1_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl3_1_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl3_1_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl3_1_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl3_1_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl3_1_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl3_1_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl3_1_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl3_1_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl3_1_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl3_1_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl3_1_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl3_1_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl3_1_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl3_1_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl3_1_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl3_1_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl3_1_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl3_1_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl3_1_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl3_1_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl3_1_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl3_1_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl3_1_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl3_1_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl3_1_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl3_1_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_1_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_1_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl3_1_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl3_1_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl3_1_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl3_1_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl3_1_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl3_1_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl3_1_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl3_1_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl3_1_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl3_1_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl3_1_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl3_1_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl3_1_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl3_1_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_1_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl3_1_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl3_1_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl3_1_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_1_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl3_1_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl3_1_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl3_1_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl3_1_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl3_1_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl3_1_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl3_1_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl3_1_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl3_1_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl3_1_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl3_1_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl3_1_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl3_1_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_1_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl3_1_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl3_1_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl3_1_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl3_1_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_1_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl3_1_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_1_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_1_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_1_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_1_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_1_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl3_1_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_1_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_1_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_1_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_1_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_1_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl3_1_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl3_1_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl3_1_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl3_1_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl3_1_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl3_1_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_1_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl3_1_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_1_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl3_1_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl3_1_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl3_1_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl3_1_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl3_1_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl3_1_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl3_1_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl3_1_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl3_1_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl3_1_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl3_1_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl3_1_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl3_1_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl3_1_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl3_1_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl3_1_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl3_1_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl3_1_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_1_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl3_1_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_1_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_1_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl3_1_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl3_1_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_1_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl3_1_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl3_1_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl3_1_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl3_1_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_1_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_1_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl3_1_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl3_1_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl3_1_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl3_1_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl3_1_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_1_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_1_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_1_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl3_1_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl3_1_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl3_1_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_1_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl3_1_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl3_1_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl3_1_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl3_1_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl3_1_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl3_1_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl3_1_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl3_1_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl3_1_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl3_1_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl3_1_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_1_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl3_1_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl3_1_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl3_1_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl3_1_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl3_1_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl3_1_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl3_1_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl3_1_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl3_1_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl3_1_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl3_1_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl3_1_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl3_1_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl3_1_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl3_1_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl3_1_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl3_1_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_1_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_1_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl3_1_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/funcs.cpp
new file mode 100644
index 000000000..c35066eba
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/funcs.cpp
@@ -0,0 +1,4140 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_3_2_compatibility.h>
+
+#include "funcs.h"
+
+void *gl3_2compat_funcs() {
+ QOpenGLFunctions_3_2_Compatibility* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_2_Compatibility>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl3_2compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl3_2compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl3_2compat_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl3_2compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl3_2compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl3_2compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl3_2compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl3_2compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl3_2compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl3_2compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl3_2compat_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl3_2compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl3_2compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl3_2compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl3_2compat_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl3_2compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl3_2compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl3_2compat_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl3_2compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl3_2compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl3_2compat_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl3_2compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl3_2compat_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl3_2compat_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl3_2compat_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl3_2compat_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl3_2compat_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl3_2compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl3_2compat_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl3_2compat_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl3_2compat_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl3_2compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl3_2compat_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl3_2compat_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl3_2compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl3_2compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl3_2compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl3_2compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl3_2compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl3_2compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl3_2compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl3_2compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl3_2compat_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl3_2compat_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl3_2compat_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl3_2compat_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl3_2compat_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl3_2compat_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl3_2compat_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl3_2compat_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl3_2compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl3_2compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl3_2compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl3_2compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl3_2compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl3_2compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl3_2compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl3_2compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl3_2compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl3_2compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl3_2compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl3_2compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl3_2compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl3_2compat_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_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl3_2compat_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_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl3_2compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl3_2compat_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl3_2compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl3_2compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl3_2compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl3_2compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl3_2compat_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_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl3_2compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl3_2compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl3_2compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl3_2compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl3_2compat_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl3_2compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl3_2compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl3_2compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl3_2compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl3_2compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl3_2compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl3_2compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl3_2compat_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl3_2compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl3_2compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl3_2compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl3_2compat_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl3_2compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl3_2compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl3_2compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl3_2compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl3_2compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl3_2compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl3_2compat_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl3_2compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl3_2compat_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl3_2compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl3_2compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl3_2compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl3_2compat_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl3_2compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl3_2compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl3_2compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl3_2compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl3_2compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl3_2compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl3_2compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl3_2compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl3_2compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl3_2compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl3_2compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl3_2compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl3_2compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl3_2compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl3_2compat_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl3_2compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl3_2compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl3_2compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl3_2compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl3_2compat_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl3_2compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl3_2compat_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl3_2compat_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl3_2compat_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl3_2compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl3_2compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl3_2compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl3_2compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl3_2compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl3_2compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl3_2compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl3_2compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl3_2compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl3_2compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl3_2compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl3_2compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl3_2compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl3_2compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_2compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_2compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl3_2compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl3_2compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl3_2compat_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl3_2compat_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl3_2compat_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl3_2compat_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl3_2compat_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl3_2compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl3_2compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl3_2compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl3_2compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl3_2compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl3_2compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl3_2compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl3_2compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl3_2compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl3_2compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl3_2compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl3_2compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl3_2compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl3_2compat_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl3_2compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl3_2compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl3_2compat_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl3_2compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl3_2compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl3_2compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl3_2compat_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_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl3_2compat_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl3_2compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl3_2compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl3_2compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl3_2compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl3_2compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl3_2compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl3_2compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl3_2compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl3_2compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl3_2compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl3_2compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl3_2compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl3_2compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl3_2compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl3_2compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl3_2compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl3_2compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl3_2compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl3_2compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl3_2compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl3_2compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl3_2compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl3_2compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl3_2compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl3_2compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl3_2compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl3_2compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl3_2compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl3_2compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl3_2compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl3_2compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl3_2compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl3_2compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl3_2compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl3_2compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl3_2compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl3_2compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl3_2compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl3_2compat_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl3_2compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl3_2compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl3_2compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_2compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl3_2compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl3_2compat_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl3_2compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl3_2compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl3_2compat_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl3_2compat_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl3_2compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl3_2compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl3_2compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl3_2compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl3_2compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl3_2compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl3_2compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl3_2compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl3_2compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl3_2compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl3_2compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl3_2compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl3_2compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl3_2compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl3_2compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl3_2compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl3_2compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl3_2compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl3_2compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl3_2compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl3_2compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl3_2compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl3_2compat_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl3_2compat_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl3_2compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl3_2compat_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl3_2compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl3_2compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl3_2compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl3_2compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl3_2compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl3_2compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl3_2compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl3_2compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl3_2compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl3_2compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl3_2compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl3_2compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl3_2compat_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl3_2compat_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl3_2compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl3_2compat_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl3_2compat_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl3_2compat_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl3_2compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl3_2compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl3_2compat_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl3_2compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl3_2compat_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl3_2compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl3_2compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl3_2compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl3_2compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl3_2compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl3_2compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl3_2compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl3_2compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl3_2compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl3_2compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl3_2compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl3_2compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl3_2compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl3_2compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl3_2compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl3_2compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl3_2compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl3_2compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl3_2compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl3_2compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl3_2compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl3_2compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl3_2compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl3_2compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl3_2compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl3_2compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl3_2compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl3_2compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl3_2compat_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl3_2compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl3_2compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl3_2compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl3_2compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl3_2compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl3_2compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl3_2compat_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl3_2compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl3_2compat_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl3_2compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl3_2compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl3_2compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl3_2compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl3_2compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl3_2compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl3_2compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl3_2compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl3_2compat_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl3_2compat_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl3_2compat_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl3_2compat_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl3_2compat_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl3_2compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl3_2compat_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl3_2compat_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl3_2compat_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl3_2compat_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl3_2compat_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl3_2compat_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl3_2compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl3_2compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl3_2compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl3_2compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl3_2compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl3_2compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl3_2compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl3_2compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl3_2compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl3_2compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl3_2compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl3_2compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl3_2compat_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl3_2compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl3_2compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl3_2compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl3_2compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl3_2compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl3_2compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl3_2compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl3_2compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl3_2compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl3_2compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl3_2compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl3_2compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl3_2compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl3_2compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl3_2compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl3_2compat_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl3_2compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl3_2compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl3_2compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl3_2compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl3_2compat_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl3_2compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl3_2compat_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl3_2compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl3_2compat_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl3_2compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl3_2compat_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl3_2compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl3_2compat_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl3_2compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl3_2compat_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl3_2compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl3_2compat_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl3_2compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl3_2compat_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl3_2compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl3_2compat_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl3_2compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl3_2compat_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl3_2compat_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl3_2compat_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl3_2compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl3_2compat_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl3_2compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl3_2compat_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl3_2compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl3_2compat_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl3_2compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl3_2compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl3_2compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl3_2compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl3_2compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl3_2compat_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl3_2compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl3_2compat_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl3_2compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl3_2compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl3_2compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl3_2compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl3_2compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl3_2compat_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl3_2compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl3_2compat_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl3_2compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl3_2compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl3_2compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl3_2compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl3_2compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl3_2compat_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl3_2compat_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl3_2compat_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl3_2compat_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl3_2compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl3_2compat_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl3_2compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl3_2compat_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl3_2compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl3_2compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl3_2compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl3_2compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl3_2compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl3_2compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl3_2compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl3_2compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl3_2compat_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl3_2compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl3_2compat_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl3_2compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl3_2compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl3_2compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl3_2compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl3_2compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl3_2compat_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl3_2compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl3_2compat_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl3_2compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl3_2compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl3_2compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl3_2compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl3_2compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl3_2compat_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl3_2compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl3_2compat_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl3_2compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl3_2compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl3_2compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl3_2compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl3_2compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl3_2compat_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl3_2compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl3_2compat_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl3_2compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl3_2compat_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl3_2compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl3_2compat_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl3_2compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl3_2compat_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl3_2compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl3_2compat_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl3_2compat_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl3_2compat_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl3_2compat_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl3_2compat_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl3_2compat_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl3_2compat_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl3_2compat_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl3_2compat_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl3_2compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl3_2compat_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl3_2compat_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl3_2compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl3_2compat_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl3_2compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl3_2compat_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl3_2compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl3_2compat_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl3_2compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl3_2compat_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl3_2compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl3_2compat_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl3_2compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl3_2compat_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl3_2compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl3_2compat_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl3_2compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl3_2compat_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl3_2compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl3_2compat_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl3_2compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl3_2compat_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl3_2compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl3_2compat_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl3_2compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl3_2compat_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl3_2compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl3_2compat_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl3_2compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl3_2compat_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl3_2compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl3_2compat_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl3_2compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl3_2compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl3_2compat_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl3_2compat_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl3_2compat_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl3_2compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl3_2compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl3_2compat_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl3_2compat_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl3_2compat_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl3_2compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl3_2compat_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl3_2compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl3_2compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl3_2compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl3_2compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl3_2compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl3_2compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl3_2compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl3_2compat_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl3_2compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl3_2compat_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl3_2compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl3_2compat_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl3_2compat_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl3_2compat_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl3_2compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl3_2compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl3_2compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl3_2compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl3_2compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl3_2compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl3_2compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl3_2compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl3_2compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl3_2compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl3_2compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl3_2compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl3_2compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl3_2compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl3_2compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl3_2compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl3_2compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl3_2compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl3_2compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl3_2compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl3_2compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl3_2compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl3_2compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl3_2compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl3_2compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl3_2compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl3_2compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl3_2compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl3_2compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl3_2compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl3_2compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl3_2compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl3_2compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl3_2compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl3_2compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl3_2compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl3_2compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl3_2compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl3_2compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl3_2compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl3_2compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl3_2compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl3_2compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl3_2compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl3_2compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl3_2compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl3_2compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl3_2compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl3_2compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl3_2compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl3_2compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl3_2compat_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl3_2compat_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl3_2compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl3_2compat_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl3_2compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl3_2compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl3_2compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl3_2compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl3_2compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl3_2compat_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl3_2compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl3_2compat_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl3_2compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl3_2compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl3_2compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl3_2compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl3_2compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl3_2compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl3_2compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl3_2compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl3_2compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl3_2compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl3_2compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl3_2compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl3_2compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl3_2compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl3_2compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl3_2compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl3_2compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl3_2compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl3_2compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl3_2compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl3_2compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl3_2compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl3_2compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl3_2compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl3_2compat_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl3_2compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl3_2compat_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
+void gl3_2compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4usv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4uiv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4ubv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4sv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4s(index, x, y, z, w);
+}
+
+void gl3_2compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4iv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gl3_2compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4dv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4d(index, x, y, z, w);
+}
+
+void gl3_2compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4bv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nusv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nuiv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nubv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nub(index, x, y, z, w);
+}
+
+void gl3_2compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nsv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Niv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nbv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3sv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3s(index, x, y, z);
+}
+
+void gl3_2compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gl3_2compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3dv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3d(index, x, y, z);
+}
+
+void gl3_2compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2sv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2s(index, x, y);
+}
+
+void gl3_2compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gl3_2compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2dv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2d(index, x, y);
+}
+
+void gl3_2compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1sv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1s(index, x);
+}
+
+void gl3_2compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gl3_2compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1dv(index, v);
+}
+
+void gl3_2compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1d(index, x);
+}
+
+void gl3_2compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4usv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ubv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4sv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4bv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4uiv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3uiv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2uiv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1uiv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4iv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3iv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2iv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1iv(index, v);
+}
+
+void gl3_2compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ui(index, x, y, z, w);
+}
+
+void gl3_2compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3ui(index, x, y, z);
+}
+
+void gl3_2compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2ui(index, x, y);
+}
+
+void gl3_2compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1ui(index, x);
+}
+
+void gl3_2compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4i(index, x, y, z, w);
+}
+
+void gl3_2compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3i(index, x, y, z);
+}
+
+void gl3_2compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2i(index, x, y);
+}
+
+void gl3_2compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x)
+{
+ QOpenGLFunctions_3_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1i(index, x);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/funcs.h
new file mode 100644
index 000000000..17fa70e2e
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/funcs.h
@@ -0,0 +1,729 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl3_2compat_funcs();
+
+void gl3_2compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_2compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl3_2compat_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl3_2compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl3_2compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_2compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl3_2compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl3_2compat_glGetError(void *_glfuncs);
+void gl3_2compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl3_2compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl3_2compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_2compat_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl3_2compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl3_2compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_2compat_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl3_2compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl3_2compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_2compat_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl3_2compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl3_2compat_glFlush(void *_glfuncs);
+void gl3_2compat_glFinish(void *_glfuncs);
+void gl3_2compat_glEnable(void *_glfuncs, GLenum cap);
+void gl3_2compat_glDisable(void *_glfuncs, GLenum cap);
+void gl3_2compat_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl3_2compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl3_2compat_glStencilMask(void *_glfuncs, GLuint mask);
+void gl3_2compat_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl3_2compat_glClearStencil(void *_glfuncs, GLint s);
+void gl3_2compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_2compat_glClear(void *_glfuncs, GLbitfield mask);
+void gl3_2compat_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl3_2compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_2compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl3_2compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_2compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl3_2compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_2compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl3_2compat_glPointSize(void *_glfuncs, GLfloat size);
+void gl3_2compat_glLineWidth(void *_glfuncs, GLfloat width);
+void gl3_2compat_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl3_2compat_glFrontFace(void *_glfuncs, GLenum mode);
+void gl3_2compat_glCullFace(void *_glfuncs, GLenum mode);
+void gl3_2compat_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl3_2compat_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl3_2compat_glIsTexture(void *_glfuncs, GLuint texture);
+void gl3_2compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl3_2compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl3_2compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl3_2compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_2compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl3_2compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl3_2compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl3_2compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl3_2compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_2compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl3_2compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_2compat_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);
+void gl3_2compat_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_2compat_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl3_2compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_2compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl3_2compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_2compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_2compat_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);
+void gl3_2compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_2compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_2compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_2compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl3_2compat_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl3_2compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_2compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl3_2compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_2compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_2compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl3_2compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl3_2compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl3_2compat_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl3_2compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl3_2compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl3_2compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl3_2compat_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl3_2compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl3_2compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl3_2compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl3_2compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl3_2compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl3_2compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2compat_glEndQuery(void *_glfuncs, GLenum target);
+void gl3_2compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl3_2compat_glIsQuery(void *_glfuncs, GLuint id);
+void gl3_2compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl3_2compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl3_2compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl3_2compat_glValidateProgram(void *_glfuncs, GLuint program);
+void gl3_2compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_2compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_2compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_2compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_2compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_2compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_2compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_2compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_2compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl3_2compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl3_2compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl3_2compat_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl3_2compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl3_2compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl3_2compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl3_2compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl3_2compat_glUseProgram(void *_glfuncs, GLuint program);
+void gl3_2compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl3_2compat_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl3_2compat_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl3_2compat_glIsProgram(void *_glfuncs, GLuint program);
+void gl3_2compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_2compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl3_2compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl3_2compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl3_2compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_2compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl3_2compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_2compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl3_2compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_2compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl3_2compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_2compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl3_2compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_2compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_2compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_2compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_2compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_2compat_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl3_2compat_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl3_2compat_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl3_2compat_glCreateProgram(void *_glfuncs);
+void gl3_2compat_glCompileShader(void *_glfuncs, GLuint shader);
+void gl3_2compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl3_2compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_2compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl3_2compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_2compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl3_2compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl3_2compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl3_2compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl3_2compat_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl3_2compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl3_2compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl3_2compat_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl3_2compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl3_2compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl3_2compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_2compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl3_2compat_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl3_2compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl3_2compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl3_2compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl3_2compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl3_2compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl3_2compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl3_2compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl3_2compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl3_2compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl3_2compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl3_2compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_2compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl3_2compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl3_2compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl3_2compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl3_2compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl3_2compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl3_2compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl3_2compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl3_2compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl3_2compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl3_2compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_2compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_2compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_2compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_2compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_2compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl3_2compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl3_2compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl3_2compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl3_2compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_2compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl3_2compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl3_2compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl3_2compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_2compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glEndConditionalRender(void *_glfuncs);
+void gl3_2compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl3_2compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl3_2compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl3_2compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl3_2compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl3_2compat_glEndTransformFeedback(void *_glfuncs);
+void gl3_2compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl3_2compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl3_2compat_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_2compat_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_2compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl3_2compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl3_2compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl3_2compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl3_2compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl3_2compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl3_2compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl3_2compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl3_2compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl3_2compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl3_2compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl3_2compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl3_2compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl3_2compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl3_2compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl3_2compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl3_2compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl3_2compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl3_2compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl3_2compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl3_2compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl3_2compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl3_2compat_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl3_2compat_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl3_2compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl3_2compat_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl3_2compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl3_2compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl3_2compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl3_2compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl3_2compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl3_2compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl3_2compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_2compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_2compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_2compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_2compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl3_2compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl3_2compat_glPushMatrix(void *_glfuncs);
+void gl3_2compat_glPopMatrix(void *_glfuncs);
+void gl3_2compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl3_2compat_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_2compat_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_2compat_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl3_2compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_2compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_2compat_glLoadIdentity(void *_glfuncs);
+void gl3_2compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl3_2compat_glIsList(void *_glfuncs, GLuint list);
+void gl3_2compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl3_2compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl3_2compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl3_2compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl3_2compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl3_2compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl3_2compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl3_2compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl3_2compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl3_2compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl3_2compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl3_2compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl3_2compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl3_2compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl3_2compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl3_2compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl3_2compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl3_2compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_2compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl3_2compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl3_2compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl3_2compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl3_2compat_glEvalPoint1(void *_glfuncs, GLint i);
+void gl3_2compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl3_2compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl3_2compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl3_2compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl3_2compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl3_2compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl3_2compat_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl3_2compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl3_2compat_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl3_2compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl3_2compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl3_2compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl3_2compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl3_2compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl3_2compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl3_2compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl3_2compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl3_2compat_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl3_2compat_glPopAttrib(void *_glfuncs);
+void gl3_2compat_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl3_2compat_glIndexMask(void *_glfuncs, GLuint mask);
+void gl3_2compat_glClearIndex(void *_glfuncs, GLfloat c);
+void gl3_2compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_2compat_glPushName(void *_glfuncs, GLuint name);
+void gl3_2compat_glPopName(void *_glfuncs);
+void gl3_2compat_glPassThrough(void *_glfuncs, GLfloat token);
+void gl3_2compat_glLoadName(void *_glfuncs, GLuint name);
+void gl3_2compat_glInitNames(void *_glfuncs);
+GLint gl3_2compat_glRenderMode(void *_glfuncs, GLenum mode);
+void gl3_2compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl3_2compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl3_2compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl3_2compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl3_2compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl3_2compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl3_2compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl3_2compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl3_2compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_2compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl3_2compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_2compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl3_2compat_glShadeModel(void *_glfuncs, GLenum mode);
+void gl3_2compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl3_2compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl3_2compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl3_2compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl3_2compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl3_2compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl3_2compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_2compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl3_2compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_2compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_2compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl3_2compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl3_2compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl3_2compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl3_2compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_2compat_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl3_2compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_2compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_2compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl3_2compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl3_2compat_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl3_2compat_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl3_2compat_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl3_2compat_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl3_2compat_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl3_2compat_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl3_2compat_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_2compat_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_2compat_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl3_2compat_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl3_2compat_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl3_2compat_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl3_2compat_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl3_2compat_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl3_2compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl3_2compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl3_2compat_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl3_2compat_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl3_2compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl3_2compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl3_2compat_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl3_2compat_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl3_2compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl3_2compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl3_2compat_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl3_2compat_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glTexCoord1i(void *_glfuncs, GLint s);
+void gl3_2compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl3_2compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl3_2compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl3_2compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl3_2compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl3_2compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl3_2compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl3_2compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl3_2compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl3_2compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl3_2compat_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl3_2compat_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl3_2compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl3_2compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl3_2compat_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl3_2compat_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl3_2compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_2compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_2compat_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl3_2compat_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl3_2compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl3_2compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl3_2compat_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl3_2compat_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl3_2compat_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl3_2compat_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl3_2compat_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl3_2compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl3_2compat_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl3_2compat_glIndexs(void *_glfuncs, GLshort c);
+void gl3_2compat_glIndexiv(void *_glfuncs, const GLint* c);
+void gl3_2compat_glIndexi(void *_glfuncs, GLint c);
+void gl3_2compat_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl3_2compat_glIndexf(void *_glfuncs, GLfloat c);
+void gl3_2compat_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl3_2compat_glIndexd(void *_glfuncs, GLdouble c);
+void gl3_2compat_glEnd(void *_glfuncs);
+void gl3_2compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl3_2compat_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl3_2compat_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl3_2compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl3_2compat_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl3_2compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl3_2compat_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl3_2compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl3_2compat_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl3_2compat_glColor4iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl3_2compat_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_2compat_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl3_2compat_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl3_2compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl3_2compat_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl3_2compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl3_2compat_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl3_2compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl3_2compat_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl3_2compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl3_2compat_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl3_2compat_glColor3iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl3_2compat_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl3_2compat_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl3_2compat_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl3_2compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl3_2compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl3_2compat_glBegin(void *_glfuncs, GLenum mode);
+void gl3_2compat_glListBase(void *_glfuncs, GLuint base);
+GLuint gl3_2compat_glGenLists(void *_glfuncs, GLsizei range_);
+void gl3_2compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl3_2compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl3_2compat_glCallList(void *_glfuncs, GLuint list);
+void gl3_2compat_glEndList(void *_glfuncs);
+void gl3_2compat_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl3_2compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl3_2compat_glPopClientAttrib(void *_glfuncs);
+void gl3_2compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl3_2compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl3_2compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glEnableClientState(void *_glfuncs, GLenum array);
+void gl3_2compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glDisableClientState(void *_glfuncs, GLenum array);
+void gl3_2compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glArrayElement(void *_glfuncs, GLint i);
+void gl3_2compat_glResetMinmax(void *_glfuncs, GLenum target);
+void gl3_2compat_glResetHistogram(void *_glfuncs, GLenum target);
+void gl3_2compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl3_2compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl3_2compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl3_2compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl3_2compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl3_2compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl3_2compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl3_2compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_2compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl3_2compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_2compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl3_2compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_2compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl3_2compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl3_2compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl3_2compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl3_2compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl3_2compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_2compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl3_2compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl3_2compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_2compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_2compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl3_2compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_2compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_2compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_2compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_2compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_2compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl3_2compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_2compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl3_2compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_2compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl3_2compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_2compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl3_2compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_2compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl3_2compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_2compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl3_2compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_2compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl3_2compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_2compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl3_2compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_2compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl3_2compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_2compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl3_2compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_2compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl3_2compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_2compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl3_2compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_2compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl3_2compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_2compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl3_2compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_2compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl3_2compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_2compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl3_2compat_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl3_2compat_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl3_2compat_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl3_2compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_2compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_2compat_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl3_2compat_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl3_2compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl3_2compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl3_2compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl3_2compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl3_2compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl3_2compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl3_2compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl3_2compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl3_2compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl3_2compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl3_2compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl3_2compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl3_2compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl3_2compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl3_2compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl3_2compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl3_2compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl3_2compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl3_2compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_2compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl3_2compat_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl3_2compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl3_2compat_glFogCoordf(void *_glfuncs, GLfloat coord);
+void gl3_2compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl3_2compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_2compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl3_2compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_2compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl3_2compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_2compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_2compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl3_2compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_2compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl3_2compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl3_2compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl3_2compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_2compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl3_2compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+void gl3_2compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_2compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_2compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl3_2compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_2compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z);
+void gl3_2compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_2compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gl3_2compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_2compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl3_2compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_2compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y);
+void gl3_2compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_2compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gl3_2compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_2compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl3_2compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_2compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x);
+void gl3_2compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_2compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gl3_2compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_2compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl3_2compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl3_2compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl3_2compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_2compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl3_2compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_2compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_2compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_2compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_2compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_2compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_2compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_2compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_2compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+void gl3_2compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z);
+void gl3_2compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y);
+void gl3_2compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x);
+void gl3_2compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w);
+void gl3_2compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z);
+void gl3_2compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y);
+void gl3_2compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/gl.go
new file mode 100644
index 000000000..3cf74a01e
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2compat/gl.go
@@ -0,0 +1,7973 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 3.2 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl3_2compat_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 3.2 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 3.2 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ INDEX = 0x8222
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_LUMINANCE_TYPE = 0x8C14
+ TEXTURE_INTENSITY_TYPE = 0x8C15
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+)
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl3_2compat_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl3_2compat_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl3_2compat_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl3_2compat_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl3_2compat_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl3_2compat_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl3_2compat_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl3_2compat_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl3_2compat_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl3_2compat_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl3_2compat_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_2compat_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl3_2compat_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl3_2compat_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl3_2compat_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl3_2compat_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl3_2compat_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl3_2compat_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl3_2compat_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl3_2compat_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl3_2compat_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl3_2compat_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl3_2compat_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl3_2compat_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl3_2compat_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl3_2compat_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl3_2compat_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl3_2compat_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl3_2compat_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl3_2compat_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl3_2compat_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl3_2compat_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl3_2compat_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl3_2compat_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl3_2compat_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl3_2compat_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl3_2compat_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl3_2compat_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl3_2compat_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl3_2compat_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl3_2compat_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl3_2compat_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl3_2compat_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl3_2compat_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl3_2compat_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl3_2compat_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl3_2compat_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl3_2compat_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl3_2compat_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl3_2compat_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl3_2compat_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl3_2compat_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl3_2compat_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl3_2compat_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl3_2compat_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl3_2compat_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl3_2compat_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl3_2compat_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl3_2compat_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl3_2compat_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_2compat_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_2compat_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl3_2compat_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl3_2compat_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl3_2compat_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl3_2compat_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl3_2compat_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl3_2compat_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl3_2compat_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl3_2compat_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl3_2compat_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl3_2compat_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl3_2compat_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl3_2compat_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl3_2compat_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl3_2compat_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_2compat_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl3_2compat_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl3_2compat_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl3_2compat_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_2compat_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl3_2compat_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl3_2compat_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl3_2compat_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl3_2compat_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl3_2compat_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl3_2compat_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl3_2compat_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl3_2compat_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl3_2compat_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl3_2compat_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl3_2compat_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl3_2compat_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl3_2compat_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_2compat_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl3_2compat_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl3_2compat_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl3_2compat_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl3_2compat_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_2compat_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl3_2compat_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_2compat_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_2compat_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_2compat_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_2compat_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_2compat_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl3_2compat_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_2compat_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_2compat_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_2compat_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_2compat_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_2compat_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl3_2compat_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl3_2compat_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl3_2compat_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl3_2compat_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl3_2compat_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl3_2compat_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_2compat_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl3_2compat_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_2compat_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl3_2compat_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl3_2compat_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl3_2compat_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl3_2compat_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl3_2compat_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl3_2compat_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl3_2compat_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl3_2compat_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl3_2compat_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl3_2compat_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl3_2compat_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl3_2compat_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl3_2compat_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl3_2compat_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl3_2compat_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl3_2compat_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl3_2compat_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl3_2compat_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_2compat_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl3_2compat_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_2compat_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_2compat_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl3_2compat_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl3_2compat_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_2compat_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl3_2compat_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl3_2compat_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl3_2compat_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl3_2compat_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_2compat_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_2compat_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl3_2compat_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl3_2compat_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl3_2compat_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl3_2compat_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl3_2compat_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_2compat_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_2compat_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl3_2compat_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl3_2compat_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl3_2compat_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_2compat_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl3_2compat_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl3_2compat_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl3_2compat_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl3_2compat_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl3_2compat_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl3_2compat_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl3_2compat_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl3_2compat_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl3_2compat_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl3_2compat_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl3_2compat_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_2compat_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl3_2compat_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl3_2compat_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl3_2compat_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl3_2compat_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl3_2compat_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl3_2compat_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl3_2compat_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl3_2compat_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl3_2compat_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl3_2compat_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl3_2compat_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl3_2compat_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl3_2compat_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl3_2compat_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl3_2compat_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl3_2compat_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_2compat_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl3_2compat_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl3_2compat_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl3_2compat_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl3_2compat_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl3_2compat_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl3_2compat_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl3_2compat_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl3_2compat_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl3_2compat_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl3_2compat_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl3_2compat_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl3_2compat_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl3_2compat_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_2compat_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl3_2compat_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl3_2compat_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl3_2compat_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl3_2compat_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl3_2compat_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl3_2compat_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl3_2compat_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl3_2compat_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl3_2compat_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl3_2compat_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl3_2compat_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl3_2compat_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl3_2compat_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl3_2compat_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl3_2compat_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl3_2compat_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl3_2compat_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl3_2compat_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl3_2compat_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl3_2compat_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl3_2compat_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl3_2compat_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl3_2compat_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl3_2compat_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl3_2compat_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl3_2compat_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl3_2compat_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl3_2compat_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl3_2compat_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl3_2compat_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl3_2compat_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl3_2compat_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl3_2compat_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl3_2compat_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl3_2compat_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl3_2compat_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl3_2compat_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl3_2compat_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl3_2compat_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl3_2compat_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl3_2compat_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl3_2compat_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl3_2compat_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl3_2compat_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl3_2compat_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl3_2compat_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl3_2compat_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl3_2compat_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl3_2compat_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl3_2compat_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl3_2compat_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl3_2compat_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl3_2compat_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl3_2compat_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl3_2compat_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl3_2compat_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl3_2compat_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl3_2compat_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl3_2compat_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl3_2compat_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl3_2compat_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl3_2compat_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl3_2compat_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl3_2compat_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl3_2compat_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl3_2compat_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl3_2compat_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl3_2compat_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl3_2compat_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl3_2compat_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl3_2compat_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl3_2compat_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl3_2compat_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl3_2compat_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl3_2compat_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl3_2compat_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl3_2compat_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl3_2compat_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl3_2compat_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl3_2compat_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl3_2compat_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl3_2compat_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl3_2compat_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl3_2compat_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl3_2compat_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl3_2compat_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl3_2compat_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl3_2compat_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl3_2compat_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl3_2compat_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl3_2compat_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl3_2compat_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl3_2compat_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl3_2compat_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl3_2compat_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl3_2compat_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl3_2compat_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl3_2compat_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl3_2compat_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl3_2compat_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl3_2compat_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl3_2compat_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl3_2compat_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl3_2compat_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl3_2compat_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl3_2compat_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl3_2compat_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl3_2compat_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl3_2compat_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl3_2compat_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl3_2compat_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl3_2compat_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl3_2compat_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl3_2compat_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl3_2compat_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl3_2compat_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl3_2compat_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl3_2compat_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl3_2compat_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl3_2compat_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl3_2compat_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl3_2compat_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl3_2compat_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl3_2compat_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl3_2compat_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl3_2compat_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl3_2compat_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl3_2compat_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl3_2compat_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl3_2compat_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl3_2compat_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl3_2compat_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl3_2compat_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl3_2compat_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl3_2compat_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl3_2compat_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl3_2compat_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl3_2compat_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl3_2compat_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl3_2compat_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl3_2compat_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl3_2compat_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl3_2compat_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl3_2compat_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl3_2compat_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl3_2compat_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl3_2compat_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl3_2compat_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl3_2compat_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl3_2compat_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl3_2compat_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl3_2compat_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl3_2compat_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl3_2compat_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl3_2compat_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl3_2compat_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl3_2compat_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl3_2compat_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl3_2compat_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl3_2compat_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl3_2compat_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl3_2compat_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl3_2compat_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl3_2compat_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl3_2compat_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl3_2compat_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl3_2compat_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl3_2compat_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl3_2compat_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl3_2compat_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl3_2compat_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl3_2compat_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl3_2compat_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl3_2compat_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl3_2compat_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl3_2compat_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl3_2compat_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl3_2compat_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl3_2compat_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl3_2compat_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl3_2compat_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl3_2compat_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl3_2compat_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl3_2compat_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl3_2compat_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl3_2compat_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl3_2compat_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl3_2compat_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl3_2compat_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl3_2compat_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl3_2compat_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl3_2compat_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl3_2compat_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl3_2compat_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl3_2compat_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl3_2compat_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl3_2compat_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl3_2compat_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl3_2compat_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl3_2compat_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl3_2compat_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl3_2compat_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl3_2compat_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl3_2compat_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl3_2compat_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl3_2compat_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl3_2compat_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2compat_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2compat_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl3_2compat_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl3_2compat_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl3_2compat_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl3_2compat_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl3_2compat_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl3_2compat_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl3_2compat_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl3_2compat_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl3_2compat_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl3_2compat_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl3_2compat_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl3_2compat_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl3_2compat_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl3_2compat_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl3_2compat_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl3_2compat_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl3_2compat_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl3_2compat_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl3_2compat_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl3_2compat_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl3_2compat_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl3_2compat_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl3_2compat_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl3_2compat_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl3_2compat_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl3_2compat_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl3_2compat_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl3_2compat_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl3_2compat_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl3_2compat_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl3_2compat_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl3_2compat_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl3_2compat_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl3_2compat_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl3_2compat_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl3_2compat_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl3_2compat_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl3_2compat_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl3_2compat_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl3_2compat_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl3_2compat_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl3_2compat_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl3_2compat_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl3_2compat_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl3_2compat_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2compat_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl3_2compat_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl3_2compat_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl3_2compat_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl3_2compat_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4usv.xml
+func (gl *GL) VertexAttrib4usv(index glbase.Attrib, v []uint16) {
+ C.gl3_2compat_glVertexAttrib4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4uiv.xml
+func (gl *GL) VertexAttrib4uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_2compat_glVertexAttrib4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4ubv.xml
+func (gl *GL) VertexAttrib4ubv(index glbase.Attrib, v []uint8) {
+ C.gl3_2compat_glVertexAttrib4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4sv.xml
+func (gl *GL) VertexAttrib4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4s.xml
+func (gl *GL) VertexAttrib4s(index glbase.Attrib, x, y, z, w int16) {
+ C.gl3_2compat_glVertexAttrib4s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4iv.xml
+func (gl *GL) VertexAttrib4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gl3_2compat_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4dv.xml
+func (gl *GL) VertexAttrib4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4d.xml
+func (gl *GL) VertexAttrib4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl3_2compat_glVertexAttrib4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4bv.xml
+func (gl *GL) VertexAttrib4bv(index glbase.Attrib, v []byte) {
+ C.gl3_2compat_glVertexAttrib4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nusv.xml
+func (gl *GL) VertexAttrib4Nusv(index glbase.Attrib, v []uint16) {
+ C.gl3_2compat_glVertexAttrib4Nusv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nuiv.xml
+func (gl *GL) VertexAttrib4Nuiv(index glbase.Attrib, v []uint32) {
+ C.gl3_2compat_glVertexAttrib4Nuiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nubv.xml
+func (gl *GL) VertexAttrib4Nubv(index glbase.Attrib, v []uint8) {
+ C.gl3_2compat_glVertexAttrib4Nubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nub.xml
+func (gl *GL) VertexAttrib4Nub(index glbase.Attrib, x, y, z, w uint8) {
+ C.gl3_2compat_glVertexAttrib4Nub(gl.funcs, C.GLuint(index), C.GLubyte(x), C.GLubyte(y), C.GLubyte(z), C.GLubyte(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nsv.xml
+func (gl *GL) VertexAttrib4Nsv(index glbase.Attrib, v []int16) {
+ C.gl3_2compat_glVertexAttrib4Nsv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Niv.xml
+func (gl *GL) VertexAttrib4Niv(index glbase.Attrib, v []int32) {
+ C.gl3_2compat_glVertexAttrib4Niv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nbv.xml
+func (gl *GL) VertexAttrib4Nbv(index glbase.Attrib, v []byte) {
+ C.gl3_2compat_glVertexAttrib4Nbv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3sv.xml
+func (gl *GL) VertexAttrib3sv(index glbase.Attrib, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib3sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3s.xml
+func (gl *GL) VertexAttrib3s(index glbase.Attrib, x, y, z int16) {
+ C.gl3_2compat_glVertexAttrib3s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gl3_2compat_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3dv.xml
+func (gl *GL) VertexAttrib3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3d.xml
+func (gl *GL) VertexAttrib3d(index glbase.Attrib, x, y, z float64) {
+ C.gl3_2compat_glVertexAttrib3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2sv.xml
+func (gl *GL) VertexAttrib2sv(index glbase.Attrib, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib2sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2s.xml
+func (gl *GL) VertexAttrib2s(index glbase.Attrib, x, y int16) {
+ C.gl3_2compat_glVertexAttrib2s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gl3_2compat_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2dv.xml
+func (gl *GL) VertexAttrib2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttrib2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2d.xml
+func (gl *GL) VertexAttrib2d(index glbase.Attrib, x, y float64) {
+ C.gl3_2compat_glVertexAttrib2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1sv.xml
+func (gl *GL) VertexAttrib1sv(index glbase.Attrib, v []int16) {
+ C.gl3_2compat_glVertexAttrib1sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1s.xml
+func (gl *GL) VertexAttrib1s(index glbase.Attrib, x int16) {
+ C.gl3_2compat_glVertexAttrib1s(gl.funcs, C.GLuint(index), C.GLshort(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, v []float32) {
+ C.gl3_2compat_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gl3_2compat_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1dv.xml
+func (gl *GL) VertexAttrib1dv(index glbase.Attrib, v []float64) {
+ C.gl3_2compat_glVertexAttrib1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1d.xml
+func (gl *GL) VertexAttrib1d(index glbase.Attrib, x float64) {
+ C.gl3_2compat_glVertexAttrib1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4usv.xml
+func (gl *GL) VertexAttribI4usv(index glbase.Attrib, v []uint16) {
+ C.gl3_2compat_glVertexAttribI4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4ubv.xml
+func (gl *GL) VertexAttribI4ubv(index glbase.Attrib, v []uint8) {
+ C.gl3_2compat_glVertexAttribI4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4sv.xml
+func (gl *GL) VertexAttribI4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttribI4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4bv.xml
+func (gl *GL) VertexAttribI4bv(index glbase.Attrib, v []byte) {
+ C.gl3_2compat_glVertexAttribI4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4uiv.xml
+func (gl *GL) VertexAttribI4uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_2compat_glVertexAttribI4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3uiv.xml
+func (gl *GL) VertexAttribI3uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_2compat_glVertexAttribI3uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2uiv.xml
+func (gl *GL) VertexAttribI2uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_2compat_glVertexAttribI2uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1uiv.xml
+func (gl *GL) VertexAttribI1uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_2compat_glVertexAttribI1uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4iv.xml
+func (gl *GL) VertexAttribI4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttribI4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3iv.xml
+func (gl *GL) VertexAttribI3iv(index glbase.Attrib, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttribI3iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2iv.xml
+func (gl *GL) VertexAttribI2iv(index glbase.Attrib, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_2compat_glVertexAttribI2iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1iv.xml
+func (gl *GL) VertexAttribI1iv(index glbase.Attrib, v []int32) {
+ C.gl3_2compat_glVertexAttribI1iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4ui.xml
+func (gl *GL) VertexAttribI4ui(index glbase.Attrib, x, y, z, w uint32) {
+ C.gl3_2compat_glVertexAttribI4ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z), C.GLuint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3ui.xml
+func (gl *GL) VertexAttribI3ui(index glbase.Attrib, x, y, z uint32) {
+ C.gl3_2compat_glVertexAttribI3ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2ui.xml
+func (gl *GL) VertexAttribI2ui(index glbase.Attrib, x, y uint32) {
+ C.gl3_2compat_glVertexAttribI2ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1ui.xml
+func (gl *GL) VertexAttribI1ui(index glbase.Attrib, x uint32) {
+ C.gl3_2compat_glVertexAttribI1ui(gl.funcs, C.GLuint(index), C.GLuint(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4i.xml
+func (gl *GL) VertexAttribI4i(index glbase.Attrib, x, y, z, w int) {
+ C.gl3_2compat_glVertexAttribI4i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3i.xml
+func (gl *GL) VertexAttribI3i(index glbase.Attrib, x, y, z int) {
+ C.gl3_2compat_glVertexAttribI3i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2i.xml
+func (gl *GL) VertexAttribI2i(index glbase.Attrib, x, y int) {
+ C.gl3_2compat_glVertexAttribI2i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1i.xml
+func (gl *GL) VertexAttribI1i(index glbase.Attrib, x int) {
+ C.gl3_2compat_glVertexAttribI1i(gl.funcs, C.GLuint(index), C.GLint(x))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/funcs.cpp
new file mode 100644
index 000000000..adacb68e1
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/funcs.cpp
@@ -0,0 +1,1530 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_3_2_core.h>
+
+#include "funcs.h"
+
+void *gl3_2core_funcs() {
+ QOpenGLFunctions_3_2_Core* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_2_Core>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl3_2core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl3_2core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl3_2core_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl3_2core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl3_2core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl3_2core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl3_2core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl3_2core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl3_2core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl3_2core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl3_2core_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl3_2core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl3_2core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl3_2core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl3_2core_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl3_2core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl3_2core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl3_2core_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl3_2core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl3_2core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl3_2core_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl3_2core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl3_2core_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl3_2core_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl3_2core_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl3_2core_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl3_2core_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl3_2core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl3_2core_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl3_2core_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl3_2core_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl3_2core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl3_2core_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl3_2core_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl3_2core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl3_2core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl3_2core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl3_2core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl3_2core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl3_2core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl3_2core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl3_2core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl3_2core_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl3_2core_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl3_2core_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl3_2core_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl3_2core_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl3_2core_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl3_2core_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl3_2core_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl3_2core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl3_2core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl3_2core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl3_2core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl3_2core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl3_2core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl3_2core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl3_2core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl3_2core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl3_2core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl3_2core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl3_2core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl3_2core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl3_2core_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_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl3_2core_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_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl3_2core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl3_2core_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl3_2core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl3_2core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl3_2core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl3_2core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl3_2core_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_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl3_2core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl3_2core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl3_2core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl3_2core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl3_2core_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl3_2core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl3_2core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl3_2core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl3_2core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl3_2core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl3_2core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl3_2core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl3_2core_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl3_2core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl3_2core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl3_2core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl3_2core_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl3_2core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl3_2core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl3_2core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl3_2core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl3_2core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl3_2core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl3_2core_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl3_2core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl3_2core_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl3_2core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl3_2core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl3_2core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl3_2core_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl3_2core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl3_2core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl3_2core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl3_2core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl3_2core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl3_2core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl3_2core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl3_2core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl3_2core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl3_2core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl3_2core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl3_2core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl3_2core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl3_2core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl3_2core_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl3_2core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl3_2core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl3_2core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl3_2core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl3_2core_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl3_2core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl3_2core_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl3_2core_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl3_2core_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl3_2core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl3_2core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl3_2core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl3_2core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl3_2core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl3_2core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl3_2core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl3_2core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl3_2core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl3_2core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl3_2core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl3_2core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl3_2core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl3_2core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_2core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_2core_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl3_2core_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl3_2core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl3_2core_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl3_2core_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl3_2core_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl3_2core_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl3_2core_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl3_2core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl3_2core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl3_2core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl3_2core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl3_2core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl3_2core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl3_2core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl3_2core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl3_2core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl3_2core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl3_2core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl3_2core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl3_2core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl3_2core_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl3_2core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl3_2core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl3_2core_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl3_2core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl3_2core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl3_2core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl3_2core_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_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl3_2core_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl3_2core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl3_2core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl3_2core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl3_2core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl3_2core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl3_2core_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl3_2core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl3_2core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl3_2core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl3_2core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl3_2core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl3_2core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl3_2core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl3_2core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl3_2core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl3_2core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl3_2core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl3_2core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl3_2core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl3_2core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl3_2core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl3_2core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl3_2core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl3_2core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl3_2core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl3_2core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl3_2core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl3_2core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl3_2core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl3_2core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl3_2core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl3_2core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl3_2core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl3_2core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl3_2core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl3_2core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl3_2core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl3_2core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl3_2core_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl3_2core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl3_2core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl3_2core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_2core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl3_2core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl3_2core_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl3_2core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl3_2core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl3_2core_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl3_2core_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl3_2core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl3_2core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl3_2core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl3_2core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl3_2core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl3_2core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl3_2core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl3_2core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl3_2core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl3_2core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl3_2core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl3_2core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl3_2core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl3_2core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl3_2core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl3_2core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl3_2core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl3_2core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl3_2core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl3_2core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl3_2core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl3_2core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl3_2core_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl3_2core_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl3_2core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl3_2core_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl3_2core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl3_2core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl3_2core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl3_2core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl3_2core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl3_2core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_3_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_2_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/funcs.h
new file mode 100644
index 000000000..b0a5c4da4
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/funcs.h
@@ -0,0 +1,294 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl3_2core_funcs();
+
+void gl3_2core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_2core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl3_2core_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl3_2core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl3_2core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl3_2core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_2core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_2core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl3_2core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl3_2core_glGetError(void *_glfuncs);
+void gl3_2core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl3_2core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl3_2core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_2core_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl3_2core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl3_2core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_2core_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl3_2core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl3_2core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_2core_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl3_2core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl3_2core_glFlush(void *_glfuncs);
+void gl3_2core_glFinish(void *_glfuncs);
+void gl3_2core_glEnable(void *_glfuncs, GLenum cap);
+void gl3_2core_glDisable(void *_glfuncs, GLenum cap);
+void gl3_2core_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl3_2core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl3_2core_glStencilMask(void *_glfuncs, GLuint mask);
+void gl3_2core_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl3_2core_glClearStencil(void *_glfuncs, GLint s);
+void gl3_2core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_2core_glClear(void *_glfuncs, GLbitfield mask);
+void gl3_2core_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl3_2core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_2core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl3_2core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_2core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl3_2core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_2core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl3_2core_glPointSize(void *_glfuncs, GLfloat size);
+void gl3_2core_glLineWidth(void *_glfuncs, GLfloat width);
+void gl3_2core_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl3_2core_glFrontFace(void *_glfuncs, GLenum mode);
+void gl3_2core_glCullFace(void *_glfuncs, GLenum mode);
+void gl3_2core_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl3_2core_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl3_2core_glIsTexture(void *_glfuncs, GLuint texture);
+void gl3_2core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl3_2core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl3_2core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl3_2core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_2core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl3_2core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl3_2core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl3_2core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl3_2core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_2core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl3_2core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_2core_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);
+void gl3_2core_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_2core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_2core_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl3_2core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_2core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl3_2core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_2core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_2core_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);
+void gl3_2core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_2core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_2core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_2core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl3_2core_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl3_2core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_2core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl3_2core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_2core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_2core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl3_2core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl3_2core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl3_2core_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl3_2core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl3_2core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl3_2core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl3_2core_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl3_2core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl3_2core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl3_2core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl3_2core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl3_2core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl3_2core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2core_glEndQuery(void *_glfuncs, GLenum target);
+void gl3_2core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl3_2core_glIsQuery(void *_glfuncs, GLuint id);
+void gl3_2core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl3_2core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl3_2core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl3_2core_glValidateProgram(void *_glfuncs, GLuint program);
+void gl3_2core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_2core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_2core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_2core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_2core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_2core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_2core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_2core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_2core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl3_2core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl3_2core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl3_2core_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl3_2core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl3_2core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl3_2core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl3_2core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl3_2core_glUseProgram(void *_glfuncs, GLuint program);
+void gl3_2core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl3_2core_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl3_2core_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl3_2core_glIsProgram(void *_glfuncs, GLuint program);
+void gl3_2core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_2core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl3_2core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl3_2core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl3_2core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl3_2core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_2core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl3_2core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_2core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl3_2core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_2core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl3_2core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_2core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl3_2core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_2core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_2core_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_2core_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_2core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_2core_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl3_2core_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl3_2core_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl3_2core_glCreateProgram(void *_glfuncs);
+void gl3_2core_glCompileShader(void *_glfuncs, GLuint shader);
+void gl3_2core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl3_2core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_2core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl3_2core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_2core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl3_2core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl3_2core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl3_2core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_2core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl3_2core_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl3_2core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl3_2core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl3_2core_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl3_2core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl3_2core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl3_2core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_2core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl3_2core_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl3_2core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl3_2core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl3_2core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl3_2core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl3_2core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl3_2core_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl3_2core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl3_2core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl3_2core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl3_2core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl3_2core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_2core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl3_2core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl3_2core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl3_2core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl3_2core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl3_2core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl3_2core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl3_2core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl3_2core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl3_2core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_2core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl3_2core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_2core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_2core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_2core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_2core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_2core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl3_2core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl3_2core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl3_2core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl3_2core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_2core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl3_2core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl3_2core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl3_2core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_2core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_2core_glEndConditionalRender(void *_glfuncs);
+void gl3_2core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl3_2core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl3_2core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl3_2core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl3_2core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl3_2core_glEndTransformFeedback(void *_glfuncs);
+void gl3_2core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl3_2core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl3_2core_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_2core_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_2core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl3_2core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl3_2core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl3_2core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl3_2core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl3_2core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl3_2core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl3_2core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl3_2core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl3_2core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl3_2core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl3_2core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl3_2core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl3_2core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl3_2core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl3_2core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl3_2core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl3_2core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl3_2core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl3_2core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl3_2core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl3_2core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl3_2core_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl3_2core_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl3_2core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl3_2core_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl3_2core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl3_2core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl3_2core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl3_2core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl3_2core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl3_2core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/gl.go
new file mode 100644
index 000000000..80805299a
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.2core/gl.go
@@ -0,0 +1,4729 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 3.2 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl3_2core_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 3.2 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 3.2 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+
+ COLOR_BUFFER_BIT = 0x00004000
+ DEPTH_BUFFER_BIT = 0x00000100
+ STENCIL_BUFFER_BIT = 0x00000400
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ BLEND = 0x0BE2
+ COLOR_LOGIC_OP = 0x0BF2
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ LINE_SMOOTH = 0x0B20
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+
+ LINEAR = 0x2601
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ FRONT_FACE = 0x0B46
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LOGIC_OP_MODE = 0x0BF0
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ READ_BUFFER = 0x0C02
+ SCISSOR_BOX = 0x0C10
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VIEWPORT = 0x0BA2
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ REPLACE = 0x1E01
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ POINTS = 0x0000
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ SRC1_ALPHA = 0x8589
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+)
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl3_2core_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl3_2core_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl3_2core_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl3_2core_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2core_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl3_2core_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl3_2core_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl3_2core_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl3_2core_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl3_2core_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl3_2core_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl3_2core_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl3_2core_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl3_2core_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_2core_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl3_2core_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl3_2core_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl3_2core_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl3_2core_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl3_2core_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl3_2core_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl3_2core_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl3_2core_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl3_2core_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl3_2core_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl3_2core_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl3_2core_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl3_2core_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl3_2core_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl3_2core_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_2core_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl3_2core_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl3_2core_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl3_2core_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl3_2core_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl3_2core_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl3_2core_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl3_2core_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl3_2core_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl3_2core_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl3_2core_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl3_2core_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl3_2core_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl3_2core_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl3_2core_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl3_2core_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl3_2core_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl3_2core_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl3_2core_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl3_2core_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl3_2core_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl3_2core_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl3_2core_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl3_2core_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl3_2core_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl3_2core_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl3_2core_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl3_2core_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl3_2core_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl3_2core_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl3_2core_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl3_2core_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl3_2core_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl3_2core_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl3_2core_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl3_2core_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_2core_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_2core_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl3_2core_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl3_2core_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl3_2core_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl3_2core_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl3_2core_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl3_2core_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl3_2core_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl3_2core_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl3_2core_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl3_2core_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl3_2core_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl3_2core_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl3_2core_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl3_2core_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_2core_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl3_2core_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl3_2core_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl3_2core_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_2core_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl3_2core_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl3_2core_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl3_2core_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl3_2core_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl3_2core_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl3_2core_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl3_2core_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl3_2core_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl3_2core_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl3_2core_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl3_2core_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl3_2core_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl3_2core_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_2core_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl3_2core_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl3_2core_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl3_2core_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl3_2core_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_2core_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl3_2core_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_2core_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_2core_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_2core_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_2core_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_2core_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl3_2core_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_2core_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_2core_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_2core_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_2core_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_2core_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl3_2core_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl3_2core_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl3_2core_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl3_2core_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl3_2core_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl3_2core_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_2core_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl3_2core_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_2core_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl3_2core_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl3_2core_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl3_2core_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl3_2core_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl3_2core_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl3_2core_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl3_2core_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl3_2core_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl3_2core_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl3_2core_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl3_2core_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl3_2core_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl3_2core_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl3_2core_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl3_2core_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl3_2core_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl3_2core_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl3_2core_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_2core_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl3_2core_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_2core_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_2core_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl3_2core_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl3_2core_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_2core_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl3_2core_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl3_2core_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl3_2core_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl3_2core_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_2core_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_2core_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl3_2core_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl3_2core_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl3_2core_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl3_2core_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl3_2core_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_2core_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_2core_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl3_2core_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl3_2core_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl3_2core_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_2core_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl3_2core_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl3_2core_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl3_2core_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl3_2core_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl3_2core_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl3_2core_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl3_2core_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl3_2core_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl3_2core_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl3_2core_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl3_2core_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_2core_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl3_2core_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl3_2core_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl3_2core_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl3_2core_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl3_2core_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl3_2core_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl3_2core_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl3_2core_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl3_2core_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl3_2core_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl3_2core_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl3_2core_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl3_2core_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl3_2core_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl3_2core_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl3_2core_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl3_2core_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_2core_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl3_2core_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl3_2core_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl3_2core_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl3_2core_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl3_2core_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl3_2core_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl3_2core_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl3_2core_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl3_2core_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl3_2core_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl3_2core_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl3_2core_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl3_2core_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_2core_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_2core_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl3_2core_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl3_2core_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/funcs.cpp
new file mode 100644
index 000000000..65c02b7de
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/funcs.cpp
@@ -0,0 +1,4488 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_3_3_compatibility.h>
+
+#include "funcs.h"
+
+void *gl3_3compat_funcs() {
+ QOpenGLFunctions_3_3_Compatibility* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_3_Compatibility>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl3_3compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl3_3compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl3_3compat_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl3_3compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl3_3compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl3_3compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl3_3compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl3_3compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl3_3compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl3_3compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl3_3compat_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl3_3compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl3_3compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl3_3compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl3_3compat_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl3_3compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl3_3compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl3_3compat_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl3_3compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl3_3compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl3_3compat_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl3_3compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl3_3compat_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl3_3compat_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl3_3compat_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl3_3compat_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl3_3compat_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl3_3compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl3_3compat_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl3_3compat_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl3_3compat_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl3_3compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl3_3compat_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl3_3compat_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl3_3compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl3_3compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl3_3compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl3_3compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl3_3compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl3_3compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl3_3compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl3_3compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl3_3compat_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl3_3compat_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl3_3compat_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl3_3compat_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl3_3compat_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl3_3compat_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl3_3compat_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl3_3compat_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl3_3compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl3_3compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl3_3compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl3_3compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl3_3compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl3_3compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl3_3compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl3_3compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl3_3compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl3_3compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl3_3compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl3_3compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl3_3compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl3_3compat_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_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl3_3compat_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_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl3_3compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl3_3compat_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl3_3compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl3_3compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl3_3compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl3_3compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl3_3compat_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_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl3_3compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl3_3compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl3_3compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl3_3compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl3_3compat_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl3_3compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl3_3compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl3_3compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl3_3compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl3_3compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl3_3compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl3_3compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl3_3compat_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl3_3compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl3_3compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl3_3compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl3_3compat_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl3_3compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl3_3compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl3_3compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl3_3compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl3_3compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl3_3compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl3_3compat_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl3_3compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl3_3compat_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl3_3compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl3_3compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl3_3compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl3_3compat_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl3_3compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl3_3compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl3_3compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl3_3compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl3_3compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl3_3compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl3_3compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl3_3compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl3_3compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl3_3compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl3_3compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl3_3compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl3_3compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl3_3compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl3_3compat_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl3_3compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl3_3compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl3_3compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl3_3compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl3_3compat_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl3_3compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl3_3compat_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl3_3compat_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl3_3compat_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl3_3compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl3_3compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl3_3compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl3_3compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl3_3compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl3_3compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl3_3compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl3_3compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl3_3compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl3_3compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl3_3compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl3_3compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl3_3compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl3_3compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_3compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_3compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl3_3compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl3_3compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl3_3compat_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl3_3compat_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl3_3compat_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl3_3compat_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl3_3compat_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl3_3compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl3_3compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl3_3compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl3_3compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl3_3compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl3_3compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl3_3compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl3_3compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl3_3compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl3_3compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl3_3compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl3_3compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl3_3compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl3_3compat_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl3_3compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl3_3compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl3_3compat_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl3_3compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl3_3compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl3_3compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl3_3compat_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_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl3_3compat_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl3_3compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl3_3compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl3_3compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl3_3compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl3_3compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl3_3compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl3_3compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl3_3compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl3_3compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl3_3compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl3_3compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl3_3compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl3_3compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl3_3compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl3_3compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl3_3compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl3_3compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl3_3compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl3_3compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl3_3compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl3_3compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl3_3compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl3_3compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl3_3compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl3_3compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl3_3compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl3_3compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl3_3compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl3_3compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl3_3compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl3_3compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl3_3compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl3_3compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl3_3compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl3_3compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl3_3compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl3_3compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl3_3compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl3_3compat_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl3_3compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl3_3compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl3_3compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_3compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl3_3compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl3_3compat_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl3_3compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl3_3compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl3_3compat_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl3_3compat_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl3_3compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl3_3compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl3_3compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl3_3compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl3_3compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl3_3compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl3_3compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl3_3compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl3_3compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl3_3compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl3_3compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl3_3compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl3_3compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl3_3compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl3_3compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl3_3compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl3_3compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl3_3compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl3_3compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl3_3compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl3_3compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl3_3compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl3_3compat_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl3_3compat_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl3_3compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl3_3compat_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl3_3compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl3_3compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl3_3compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl3_3compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl3_3compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl3_3compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl3_3compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl3_3compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl3_3compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl3_3compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl3_3compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl3_3compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl3_3compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl3_3compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl3_3compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl3_3compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl3_3compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl3_3compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl3_3compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl3_3compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl3_3compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl3_3compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl3_3compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl3_3compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl3_3compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl3_3compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl3_3compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl3_3compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl3_3compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl3_3compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl3_3compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl3_3compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl3_3compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl3_3compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl3_3compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl3_3compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl3_3compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl3_3compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl3_3compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl3_3compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl3_3compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl3_3compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl3_3compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl3_3compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl3_3compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl3_3compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl3_3compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl3_3compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl3_3compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl3_3compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl3_3compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl3_3compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl3_3compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl3_3compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl3_3compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl3_3compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl3_3compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl3_3compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl3_3compat_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl3_3compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl3_3compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl3_3compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl3_3compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl3_3compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
+void gl3_3compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl3_3compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl3_3compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl3_3compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl3_3compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl3_3compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl3_3compat_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl3_3compat_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl3_3compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl3_3compat_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl3_3compat_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl3_3compat_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl3_3compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl3_3compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl3_3compat_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl3_3compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl3_3compat_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl3_3compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl3_3compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl3_3compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl3_3compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl3_3compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl3_3compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl3_3compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl3_3compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl3_3compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl3_3compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl3_3compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl3_3compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl3_3compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl3_3compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl3_3compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl3_3compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl3_3compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl3_3compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl3_3compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl3_3compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl3_3compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl3_3compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl3_3compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl3_3compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl3_3compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl3_3compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl3_3compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl3_3compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl3_3compat_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl3_3compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl3_3compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl3_3compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl3_3compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl3_3compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl3_3compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl3_3compat_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl3_3compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl3_3compat_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl3_3compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl3_3compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl3_3compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl3_3compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl3_3compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl3_3compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl3_3compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl3_3compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl3_3compat_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl3_3compat_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl3_3compat_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl3_3compat_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl3_3compat_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl3_3compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl3_3compat_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl3_3compat_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl3_3compat_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl3_3compat_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl3_3compat_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl3_3compat_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl3_3compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl3_3compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl3_3compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl3_3compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl3_3compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl3_3compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl3_3compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl3_3compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl3_3compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl3_3compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl3_3compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl3_3compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl3_3compat_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl3_3compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl3_3compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl3_3compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl3_3compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl3_3compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl3_3compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl3_3compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl3_3compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl3_3compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl3_3compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl3_3compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl3_3compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl3_3compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl3_3compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl3_3compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl3_3compat_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl3_3compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl3_3compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl3_3compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl3_3compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl3_3compat_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl3_3compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl3_3compat_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl3_3compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl3_3compat_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl3_3compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl3_3compat_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl3_3compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl3_3compat_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl3_3compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl3_3compat_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl3_3compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl3_3compat_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl3_3compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl3_3compat_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl3_3compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl3_3compat_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl3_3compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl3_3compat_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl3_3compat_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl3_3compat_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl3_3compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl3_3compat_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl3_3compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl3_3compat_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl3_3compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl3_3compat_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl3_3compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl3_3compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl3_3compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl3_3compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl3_3compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl3_3compat_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl3_3compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl3_3compat_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl3_3compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl3_3compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl3_3compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl3_3compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl3_3compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl3_3compat_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl3_3compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl3_3compat_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl3_3compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl3_3compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl3_3compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl3_3compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl3_3compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl3_3compat_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl3_3compat_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl3_3compat_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl3_3compat_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl3_3compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl3_3compat_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl3_3compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl3_3compat_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl3_3compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl3_3compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl3_3compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl3_3compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl3_3compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl3_3compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl3_3compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl3_3compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl3_3compat_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl3_3compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl3_3compat_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl3_3compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl3_3compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl3_3compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl3_3compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl3_3compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl3_3compat_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl3_3compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl3_3compat_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl3_3compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl3_3compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl3_3compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl3_3compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl3_3compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl3_3compat_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl3_3compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl3_3compat_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl3_3compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl3_3compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl3_3compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl3_3compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl3_3compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl3_3compat_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl3_3compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl3_3compat_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl3_3compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl3_3compat_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl3_3compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl3_3compat_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl3_3compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl3_3compat_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl3_3compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl3_3compat_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl3_3compat_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl3_3compat_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl3_3compat_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl3_3compat_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl3_3compat_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl3_3compat_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl3_3compat_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl3_3compat_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl3_3compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl3_3compat_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl3_3compat_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl3_3compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl3_3compat_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl3_3compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl3_3compat_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl3_3compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl3_3compat_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl3_3compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl3_3compat_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl3_3compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl3_3compat_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl3_3compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl3_3compat_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl3_3compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl3_3compat_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl3_3compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl3_3compat_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl3_3compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl3_3compat_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl3_3compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl3_3compat_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl3_3compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl3_3compat_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl3_3compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl3_3compat_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl3_3compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl3_3compat_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl3_3compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl3_3compat_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl3_3compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl3_3compat_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl3_3compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl3_3compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl3_3compat_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl3_3compat_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl3_3compat_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl3_3compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl3_3compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl3_3compat_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl3_3compat_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl3_3compat_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl3_3compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl3_3compat_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl3_3compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl3_3compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl3_3compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl3_3compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl3_3compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl3_3compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl3_3compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl3_3compat_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl3_3compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl3_3compat_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl3_3compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl3_3compat_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl3_3compat_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl3_3compat_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl3_3compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl3_3compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl3_3compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl3_3compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl3_3compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl3_3compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl3_3compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl3_3compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl3_3compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl3_3compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl3_3compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl3_3compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl3_3compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl3_3compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl3_3compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl3_3compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl3_3compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl3_3compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl3_3compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl3_3compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl3_3compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl3_3compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl3_3compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl3_3compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl3_3compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl3_3compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl3_3compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl3_3compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl3_3compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl3_3compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl3_3compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl3_3compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl3_3compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl3_3compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl3_3compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl3_3compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl3_3compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl3_3compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl3_3compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl3_3compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl3_3compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl3_3compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl3_3compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl3_3compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl3_3compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl3_3compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl3_3compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl3_3compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl3_3compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl3_3compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl3_3compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl3_3compat_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl3_3compat_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl3_3compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl3_3compat_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl3_3compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl3_3compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl3_3compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl3_3compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl3_3compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl3_3compat_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl3_3compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl3_3compat_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl3_3compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl3_3compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl3_3compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl3_3compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl3_3compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl3_3compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl3_3compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl3_3compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl3_3compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl3_3compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl3_3compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl3_3compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl3_3compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl3_3compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl3_3compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl3_3compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl3_3compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl3_3compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl3_3compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl3_3compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl3_3compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl3_3compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl3_3compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl3_3compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl3_3compat_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl3_3compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl3_3compat_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
+void gl3_3compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4usv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4uiv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4ubv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4sv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4s(index, x, y, z, w);
+}
+
+void gl3_3compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4iv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gl3_3compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4dv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4d(index, x, y, z, w);
+}
+
+void gl3_3compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4bv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nusv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nuiv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nubv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nub(index, x, y, z, w);
+}
+
+void gl3_3compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nsv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Niv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nbv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3sv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3s(index, x, y, z);
+}
+
+void gl3_3compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gl3_3compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3dv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3d(index, x, y, z);
+}
+
+void gl3_3compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2sv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2s(index, x, y);
+}
+
+void gl3_3compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gl3_3compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2dv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2d(index, x, y);
+}
+
+void gl3_3compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1sv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1s(index, x);
+}
+
+void gl3_3compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gl3_3compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1dv(index, v);
+}
+
+void gl3_3compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1d(index, x);
+}
+
+void gl3_3compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4usv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ubv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4sv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4bv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4uiv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3uiv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2uiv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1uiv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4iv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3iv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2iv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1iv(index, v);
+}
+
+void gl3_3compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ui(index, x, y, z, w);
+}
+
+void gl3_3compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3ui(index, x, y, z);
+}
+
+void gl3_3compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2ui(index, x, y);
+}
+
+void gl3_3compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1ui(index, x);
+}
+
+void gl3_3compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4i(index, x, y, z, w);
+}
+
+void gl3_3compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3i(index, x, y, z);
+}
+
+void gl3_3compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2i(index, x, y);
+}
+
+void gl3_3compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x)
+{
+ QOpenGLFunctions_3_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1i(index, x);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/funcs.h
new file mode 100644
index 000000000..bd7747532
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/funcs.h
@@ -0,0 +1,787 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl3_3compat_funcs();
+
+void gl3_3compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_3compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl3_3compat_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl3_3compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl3_3compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_3compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl3_3compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl3_3compat_glGetError(void *_glfuncs);
+void gl3_3compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl3_3compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl3_3compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_3compat_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl3_3compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl3_3compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_3compat_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl3_3compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl3_3compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_3compat_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl3_3compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl3_3compat_glFlush(void *_glfuncs);
+void gl3_3compat_glFinish(void *_glfuncs);
+void gl3_3compat_glEnable(void *_glfuncs, GLenum cap);
+void gl3_3compat_glDisable(void *_glfuncs, GLenum cap);
+void gl3_3compat_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl3_3compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl3_3compat_glStencilMask(void *_glfuncs, GLuint mask);
+void gl3_3compat_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl3_3compat_glClearStencil(void *_glfuncs, GLint s);
+void gl3_3compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_3compat_glClear(void *_glfuncs, GLbitfield mask);
+void gl3_3compat_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl3_3compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_3compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl3_3compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_3compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl3_3compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_3compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl3_3compat_glPointSize(void *_glfuncs, GLfloat size);
+void gl3_3compat_glLineWidth(void *_glfuncs, GLfloat width);
+void gl3_3compat_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl3_3compat_glFrontFace(void *_glfuncs, GLenum mode);
+void gl3_3compat_glCullFace(void *_glfuncs, GLenum mode);
+void gl3_3compat_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl3_3compat_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl3_3compat_glIsTexture(void *_glfuncs, GLuint texture);
+void gl3_3compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl3_3compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl3_3compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl3_3compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_3compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl3_3compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl3_3compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl3_3compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl3_3compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_3compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl3_3compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_3compat_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);
+void gl3_3compat_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_3compat_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl3_3compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_3compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl3_3compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_3compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_3compat_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);
+void gl3_3compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_3compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_3compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_3compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl3_3compat_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl3_3compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_3compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl3_3compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_3compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_3compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl3_3compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl3_3compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl3_3compat_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl3_3compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl3_3compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl3_3compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl3_3compat_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl3_3compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl3_3compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl3_3compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl3_3compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl3_3compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl3_3compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3compat_glEndQuery(void *_glfuncs, GLenum target);
+void gl3_3compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl3_3compat_glIsQuery(void *_glfuncs, GLuint id);
+void gl3_3compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl3_3compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl3_3compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl3_3compat_glValidateProgram(void *_glfuncs, GLuint program);
+void gl3_3compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_3compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_3compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_3compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_3compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_3compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_3compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_3compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_3compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl3_3compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl3_3compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl3_3compat_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl3_3compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl3_3compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl3_3compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl3_3compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl3_3compat_glUseProgram(void *_glfuncs, GLuint program);
+void gl3_3compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl3_3compat_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl3_3compat_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl3_3compat_glIsProgram(void *_glfuncs, GLuint program);
+void gl3_3compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_3compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl3_3compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl3_3compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl3_3compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_3compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl3_3compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_3compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl3_3compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_3compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl3_3compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_3compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl3_3compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_3compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_3compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_3compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_3compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_3compat_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl3_3compat_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl3_3compat_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl3_3compat_glCreateProgram(void *_glfuncs);
+void gl3_3compat_glCompileShader(void *_glfuncs, GLuint shader);
+void gl3_3compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl3_3compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_3compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl3_3compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_3compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl3_3compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl3_3compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl3_3compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl3_3compat_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl3_3compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl3_3compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl3_3compat_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl3_3compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl3_3compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl3_3compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_3compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl3_3compat_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl3_3compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl3_3compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl3_3compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl3_3compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl3_3compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl3_3compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl3_3compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl3_3compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl3_3compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl3_3compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl3_3compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_3compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl3_3compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl3_3compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl3_3compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl3_3compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl3_3compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl3_3compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl3_3compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl3_3compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl3_3compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl3_3compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_3compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_3compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_3compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_3compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_3compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl3_3compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl3_3compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl3_3compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl3_3compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_3compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl3_3compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl3_3compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl3_3compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_3compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glEndConditionalRender(void *_glfuncs);
+void gl3_3compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl3_3compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl3_3compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl3_3compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl3_3compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl3_3compat_glEndTransformFeedback(void *_glfuncs);
+void gl3_3compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl3_3compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl3_3compat_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_3compat_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_3compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl3_3compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl3_3compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl3_3compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl3_3compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl3_3compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl3_3compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl3_3compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl3_3compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl3_3compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl3_3compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl3_3compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl3_3compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl3_3compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl3_3compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl3_3compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl3_3compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl3_3compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl3_3compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl3_3compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl3_3compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl3_3compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl3_3compat_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl3_3compat_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl3_3compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl3_3compat_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl3_3compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl3_3compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl3_3compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl3_3compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl3_3compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl3_3compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl3_3compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl3_3compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl3_3compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl3_3compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl3_3compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl3_3compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl3_3compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl3_3compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl3_3compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl3_3compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl3_3compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl3_3compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl3_3compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl3_3compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl3_3compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl3_3compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl3_3compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl3_3compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl3_3compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl3_3compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl3_3compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl3_3compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl3_3compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl3_3compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl3_3compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl3_3compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl3_3compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl3_3compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl3_3compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl3_3compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl3_3compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl3_3compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl3_3compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl3_3compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl3_3compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl3_3compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl3_3compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl3_3compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl3_3compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl3_3compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl3_3compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl3_3compat_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl3_3compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl3_3compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl3_3compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_3compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl3_3compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+void gl3_3compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_3compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_3compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_3compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_3compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl3_3compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl3_3compat_glPushMatrix(void *_glfuncs);
+void gl3_3compat_glPopMatrix(void *_glfuncs);
+void gl3_3compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl3_3compat_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_3compat_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_3compat_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl3_3compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_3compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_3compat_glLoadIdentity(void *_glfuncs);
+void gl3_3compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl3_3compat_glIsList(void *_glfuncs, GLuint list);
+void gl3_3compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl3_3compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl3_3compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl3_3compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl3_3compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl3_3compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl3_3compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl3_3compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl3_3compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl3_3compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl3_3compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl3_3compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl3_3compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl3_3compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl3_3compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl3_3compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl3_3compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl3_3compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_3compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl3_3compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl3_3compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl3_3compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl3_3compat_glEvalPoint1(void *_glfuncs, GLint i);
+void gl3_3compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl3_3compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl3_3compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl3_3compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl3_3compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl3_3compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl3_3compat_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl3_3compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl3_3compat_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl3_3compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl3_3compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl3_3compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl3_3compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl3_3compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl3_3compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl3_3compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl3_3compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl3_3compat_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl3_3compat_glPopAttrib(void *_glfuncs);
+void gl3_3compat_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl3_3compat_glIndexMask(void *_glfuncs, GLuint mask);
+void gl3_3compat_glClearIndex(void *_glfuncs, GLfloat c);
+void gl3_3compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_3compat_glPushName(void *_glfuncs, GLuint name);
+void gl3_3compat_glPopName(void *_glfuncs);
+void gl3_3compat_glPassThrough(void *_glfuncs, GLfloat token);
+void gl3_3compat_glLoadName(void *_glfuncs, GLuint name);
+void gl3_3compat_glInitNames(void *_glfuncs);
+GLint gl3_3compat_glRenderMode(void *_glfuncs, GLenum mode);
+void gl3_3compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl3_3compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl3_3compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl3_3compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl3_3compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl3_3compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl3_3compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl3_3compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl3_3compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_3compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl3_3compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_3compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl3_3compat_glShadeModel(void *_glfuncs, GLenum mode);
+void gl3_3compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl3_3compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl3_3compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl3_3compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl3_3compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl3_3compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl3_3compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_3compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl3_3compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_3compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_3compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl3_3compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl3_3compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl3_3compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl3_3compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_3compat_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl3_3compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_3compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_3compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl3_3compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl3_3compat_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl3_3compat_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl3_3compat_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl3_3compat_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl3_3compat_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl3_3compat_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl3_3compat_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_3compat_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_3compat_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl3_3compat_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl3_3compat_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl3_3compat_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl3_3compat_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl3_3compat_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl3_3compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl3_3compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl3_3compat_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl3_3compat_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl3_3compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl3_3compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl3_3compat_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl3_3compat_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl3_3compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl3_3compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl3_3compat_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl3_3compat_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glTexCoord1i(void *_glfuncs, GLint s);
+void gl3_3compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl3_3compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl3_3compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl3_3compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl3_3compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl3_3compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl3_3compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl3_3compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl3_3compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl3_3compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl3_3compat_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl3_3compat_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl3_3compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl3_3compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl3_3compat_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl3_3compat_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl3_3compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_3compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_3compat_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl3_3compat_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl3_3compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl3_3compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl3_3compat_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl3_3compat_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl3_3compat_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl3_3compat_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl3_3compat_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl3_3compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl3_3compat_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl3_3compat_glIndexs(void *_glfuncs, GLshort c);
+void gl3_3compat_glIndexiv(void *_glfuncs, const GLint* c);
+void gl3_3compat_glIndexi(void *_glfuncs, GLint c);
+void gl3_3compat_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl3_3compat_glIndexf(void *_glfuncs, GLfloat c);
+void gl3_3compat_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl3_3compat_glIndexd(void *_glfuncs, GLdouble c);
+void gl3_3compat_glEnd(void *_glfuncs);
+void gl3_3compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl3_3compat_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl3_3compat_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl3_3compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl3_3compat_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl3_3compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl3_3compat_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl3_3compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl3_3compat_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl3_3compat_glColor4iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl3_3compat_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_3compat_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl3_3compat_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl3_3compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl3_3compat_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl3_3compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl3_3compat_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl3_3compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl3_3compat_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl3_3compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl3_3compat_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl3_3compat_glColor3iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl3_3compat_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl3_3compat_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl3_3compat_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl3_3compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl3_3compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl3_3compat_glBegin(void *_glfuncs, GLenum mode);
+void gl3_3compat_glListBase(void *_glfuncs, GLuint base);
+GLuint gl3_3compat_glGenLists(void *_glfuncs, GLsizei range_);
+void gl3_3compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl3_3compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl3_3compat_glCallList(void *_glfuncs, GLuint list);
+void gl3_3compat_glEndList(void *_glfuncs);
+void gl3_3compat_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl3_3compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl3_3compat_glPopClientAttrib(void *_glfuncs);
+void gl3_3compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl3_3compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl3_3compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glEnableClientState(void *_glfuncs, GLenum array);
+void gl3_3compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glDisableClientState(void *_glfuncs, GLenum array);
+void gl3_3compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glArrayElement(void *_glfuncs, GLint i);
+void gl3_3compat_glResetMinmax(void *_glfuncs, GLenum target);
+void gl3_3compat_glResetHistogram(void *_glfuncs, GLenum target);
+void gl3_3compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl3_3compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl3_3compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl3_3compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl3_3compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl3_3compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl3_3compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl3_3compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_3compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl3_3compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_3compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl3_3compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_3compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl3_3compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl3_3compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl3_3compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl3_3compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl3_3compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_3compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl3_3compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl3_3compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_3compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_3compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl3_3compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_3compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_3compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl3_3compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl3_3compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_3compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl3_3compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_3compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl3_3compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_3compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl3_3compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_3compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl3_3compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_3compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl3_3compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_3compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl3_3compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_3compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl3_3compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_3compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl3_3compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_3compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl3_3compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_3compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl3_3compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_3compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl3_3compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_3compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl3_3compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl3_3compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl3_3compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl3_3compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl3_3compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl3_3compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl3_3compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl3_3compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl3_3compat_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl3_3compat_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl3_3compat_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl3_3compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl3_3compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl3_3compat_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl3_3compat_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl3_3compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl3_3compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl3_3compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl3_3compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl3_3compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl3_3compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl3_3compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl3_3compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl3_3compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl3_3compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl3_3compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl3_3compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl3_3compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl3_3compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl3_3compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl3_3compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl3_3compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl3_3compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl3_3compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_3compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl3_3compat_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl3_3compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl3_3compat_glFogCoordf(void *_glfuncs, GLfloat coord);
+void gl3_3compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl3_3compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_3compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl3_3compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_3compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl3_3compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_3compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_3compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl3_3compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_3compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl3_3compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl3_3compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl3_3compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_3compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl3_3compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+void gl3_3compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_3compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_3compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl3_3compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_3compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z);
+void gl3_3compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_3compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gl3_3compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_3compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl3_3compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_3compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y);
+void gl3_3compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_3compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gl3_3compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_3compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl3_3compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_3compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x);
+void gl3_3compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl3_3compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gl3_3compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl3_3compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl3_3compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl3_3compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl3_3compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl3_3compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl3_3compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_3compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_3compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_3compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl3_3compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_3compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_3compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_3compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl3_3compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+void gl3_3compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z);
+void gl3_3compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y);
+void gl3_3compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x);
+void gl3_3compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w);
+void gl3_3compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z);
+void gl3_3compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y);
+void gl3_3compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/gl.go
new file mode 100644
index 000000000..8772aa9bc
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3compat/gl.go
@@ -0,0 +1,8281 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 3.3 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl3_3compat_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 3.3 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 3.3 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ INDEX = 0x8222
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_LUMINANCE_TYPE = 0x8C14
+ TEXTURE_INTENSITY_TYPE = 0x8C15
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ RGB10_A2UI = 0x906F
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+)
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl3_3compat_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl3_3compat_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl3_3compat_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl3_3compat_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl3_3compat_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl3_3compat_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl3_3compat_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl3_3compat_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl3_3compat_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl3_3compat_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl3_3compat_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_3compat_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl3_3compat_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl3_3compat_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl3_3compat_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl3_3compat_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl3_3compat_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl3_3compat_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl3_3compat_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl3_3compat_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl3_3compat_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl3_3compat_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl3_3compat_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl3_3compat_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl3_3compat_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl3_3compat_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl3_3compat_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl3_3compat_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl3_3compat_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl3_3compat_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl3_3compat_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl3_3compat_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl3_3compat_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl3_3compat_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl3_3compat_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl3_3compat_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl3_3compat_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl3_3compat_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl3_3compat_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl3_3compat_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl3_3compat_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl3_3compat_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl3_3compat_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl3_3compat_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl3_3compat_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl3_3compat_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl3_3compat_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl3_3compat_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl3_3compat_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl3_3compat_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl3_3compat_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl3_3compat_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl3_3compat_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl3_3compat_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl3_3compat_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl3_3compat_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl3_3compat_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl3_3compat_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl3_3compat_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl3_3compat_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_3compat_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_3compat_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl3_3compat_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl3_3compat_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl3_3compat_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl3_3compat_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl3_3compat_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl3_3compat_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl3_3compat_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl3_3compat_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl3_3compat_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl3_3compat_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl3_3compat_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl3_3compat_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl3_3compat_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl3_3compat_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_3compat_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl3_3compat_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl3_3compat_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl3_3compat_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_3compat_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl3_3compat_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl3_3compat_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl3_3compat_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl3_3compat_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl3_3compat_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl3_3compat_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl3_3compat_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl3_3compat_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl3_3compat_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl3_3compat_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl3_3compat_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl3_3compat_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl3_3compat_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_3compat_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl3_3compat_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl3_3compat_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl3_3compat_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl3_3compat_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_3compat_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl3_3compat_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_3compat_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_3compat_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_3compat_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_3compat_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_3compat_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl3_3compat_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_3compat_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_3compat_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_3compat_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_3compat_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_3compat_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl3_3compat_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl3_3compat_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl3_3compat_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl3_3compat_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl3_3compat_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl3_3compat_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_3compat_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl3_3compat_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_3compat_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl3_3compat_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl3_3compat_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl3_3compat_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl3_3compat_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl3_3compat_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl3_3compat_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl3_3compat_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl3_3compat_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl3_3compat_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl3_3compat_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl3_3compat_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl3_3compat_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl3_3compat_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl3_3compat_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl3_3compat_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl3_3compat_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl3_3compat_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl3_3compat_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_3compat_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl3_3compat_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_3compat_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_3compat_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl3_3compat_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl3_3compat_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_3compat_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl3_3compat_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl3_3compat_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl3_3compat_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl3_3compat_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_3compat_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_3compat_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl3_3compat_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl3_3compat_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl3_3compat_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl3_3compat_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl3_3compat_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_3compat_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_3compat_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl3_3compat_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl3_3compat_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl3_3compat_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_3compat_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl3_3compat_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl3_3compat_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl3_3compat_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl3_3compat_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl3_3compat_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl3_3compat_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl3_3compat_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl3_3compat_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl3_3compat_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl3_3compat_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl3_3compat_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_3compat_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl3_3compat_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl3_3compat_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl3_3compat_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl3_3compat_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl3_3compat_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl3_3compat_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl3_3compat_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl3_3compat_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl3_3compat_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl3_3compat_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl3_3compat_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl3_3compat_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl3_3compat_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl3_3compat_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl3_3compat_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl3_3compat_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_3compat_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl3_3compat_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl3_3compat_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl3_3compat_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl3_3compat_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl3_3compat_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl3_3compat_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl3_3compat_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl3_3compat_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl3_3compat_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl3_3compat_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl3_3compat_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl3_3compat_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl3_3compat_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_3compat_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl3_3compat_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl3_3compat_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl3_3compat_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl3_3compat_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl3_3compat_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl3_3compat_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl3_3compat_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl3_3compat_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl3_3compat_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl3_3compat_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl3_3compat_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl3_3compat_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl3_3compat_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl3_3compat_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl3_3compat_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl3_3compat_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3compat_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3compat_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl3_3compat_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl3_3compat_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl3_3compat_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl3_3compat_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl3_3compat_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl3_3compat_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl3_3compat_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl3_3compat_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3compat_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3compat_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3compat_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3compat_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3compat_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3compat_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3compat_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3compat_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl3_3compat_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl3_3compat_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl3_3compat_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl3_3compat_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl3_3compat_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl3_3compat_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl3_3compat_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl3_3compat_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl3_3compat_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl3_3compat_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl3_3compat_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl3_3compat_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl3_3compat_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl3_3compat_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl3_3compat_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl3_3compat_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl3_3compat_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl3_3compat_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl3_3compat_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl3_3compat_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl3_3compat_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl3_3compat_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl3_3compat_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl3_3compat_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl3_3compat_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl3_3compat_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl3_3compat_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl3_3compat_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl3_3compat_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl3_3compat_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl3_3compat_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl3_3compat_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl3_3compat_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl3_3compat_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl3_3compat_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl3_3compat_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl3_3compat_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl3_3compat_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl3_3compat_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl3_3compat_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl3_3compat_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl3_3compat_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl3_3compat_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl3_3compat_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl3_3compat_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl3_3compat_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl3_3compat_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl3_3compat_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl3_3compat_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl3_3compat_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl3_3compat_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl3_3compat_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl3_3compat_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl3_3compat_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl3_3compat_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl3_3compat_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl3_3compat_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl3_3compat_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl3_3compat_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl3_3compat_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl3_3compat_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl3_3compat_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl3_3compat_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl3_3compat_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl3_3compat_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl3_3compat_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl3_3compat_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl3_3compat_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl3_3compat_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl3_3compat_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl3_3compat_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl3_3compat_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl3_3compat_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl3_3compat_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl3_3compat_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl3_3compat_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl3_3compat_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl3_3compat_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl3_3compat_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl3_3compat_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl3_3compat_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl3_3compat_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl3_3compat_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl3_3compat_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl3_3compat_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl3_3compat_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl3_3compat_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl3_3compat_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl3_3compat_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl3_3compat_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl3_3compat_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl3_3compat_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl3_3compat_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl3_3compat_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl3_3compat_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl3_3compat_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl3_3compat_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl3_3compat_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl3_3compat_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl3_3compat_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl3_3compat_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl3_3compat_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl3_3compat_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl3_3compat_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl3_3compat_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl3_3compat_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl3_3compat_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl3_3compat_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl3_3compat_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl3_3compat_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl3_3compat_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl3_3compat_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl3_3compat_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl3_3compat_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl3_3compat_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl3_3compat_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl3_3compat_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl3_3compat_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl3_3compat_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl3_3compat_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl3_3compat_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl3_3compat_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl3_3compat_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl3_3compat_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl3_3compat_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl3_3compat_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl3_3compat_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl3_3compat_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl3_3compat_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl3_3compat_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl3_3compat_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl3_3compat_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl3_3compat_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl3_3compat_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl3_3compat_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl3_3compat_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl3_3compat_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl3_3compat_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl3_3compat_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl3_3compat_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl3_3compat_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl3_3compat_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl3_3compat_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl3_3compat_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl3_3compat_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl3_3compat_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl3_3compat_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl3_3compat_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl3_3compat_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl3_3compat_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl3_3compat_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl3_3compat_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl3_3compat_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl3_3compat_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl3_3compat_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl3_3compat_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl3_3compat_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl3_3compat_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl3_3compat_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl3_3compat_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl3_3compat_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl3_3compat_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl3_3compat_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl3_3compat_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl3_3compat_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl3_3compat_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl3_3compat_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl3_3compat_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl3_3compat_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl3_3compat_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl3_3compat_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl3_3compat_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl3_3compat_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl3_3compat_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl3_3compat_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl3_3compat_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl3_3compat_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl3_3compat_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl3_3compat_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl3_3compat_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl3_3compat_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl3_3compat_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl3_3compat_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl3_3compat_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl3_3compat_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl3_3compat_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl3_3compat_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl3_3compat_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl3_3compat_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl3_3compat_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl3_3compat_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl3_3compat_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl3_3compat_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl3_3compat_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl3_3compat_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl3_3compat_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl3_3compat_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl3_3compat_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl3_3compat_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl3_3compat_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl3_3compat_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl3_3compat_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl3_3compat_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl3_3compat_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl3_3compat_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl3_3compat_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl3_3compat_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl3_3compat_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl3_3compat_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl3_3compat_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl3_3compat_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl3_3compat_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl3_3compat_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl3_3compat_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl3_3compat_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl3_3compat_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl3_3compat_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl3_3compat_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl3_3compat_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl3_3compat_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl3_3compat_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl3_3compat_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl3_3compat_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl3_3compat_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl3_3compat_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl3_3compat_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl3_3compat_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl3_3compat_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3compat_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3compat_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl3_3compat_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl3_3compat_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl3_3compat_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl3_3compat_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl3_3compat_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl3_3compat_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl3_3compat_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl3_3compat_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl3_3compat_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl3_3compat_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl3_3compat_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl3_3compat_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl3_3compat_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl3_3compat_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl3_3compat_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl3_3compat_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl3_3compat_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl3_3compat_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl3_3compat_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl3_3compat_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl3_3compat_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl3_3compat_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl3_3compat_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl3_3compat_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl3_3compat_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl3_3compat_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl3_3compat_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl3_3compat_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl3_3compat_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl3_3compat_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl3_3compat_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl3_3compat_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl3_3compat_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl3_3compat_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl3_3compat_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl3_3compat_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl3_3compat_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl3_3compat_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl3_3compat_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl3_3compat_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl3_3compat_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl3_3compat_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl3_3compat_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl3_3compat_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl3_3compat_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3compat_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl3_3compat_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl3_3compat_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl3_3compat_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl3_3compat_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4usv.xml
+func (gl *GL) VertexAttrib4usv(index glbase.Attrib, v []uint16) {
+ C.gl3_3compat_glVertexAttrib4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4uiv.xml
+func (gl *GL) VertexAttrib4uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_3compat_glVertexAttrib4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4ubv.xml
+func (gl *GL) VertexAttrib4ubv(index glbase.Attrib, v []uint8) {
+ C.gl3_3compat_glVertexAttrib4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4sv.xml
+func (gl *GL) VertexAttrib4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4s.xml
+func (gl *GL) VertexAttrib4s(index glbase.Attrib, x, y, z, w int16) {
+ C.gl3_3compat_glVertexAttrib4s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4iv.xml
+func (gl *GL) VertexAttrib4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gl3_3compat_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4dv.xml
+func (gl *GL) VertexAttrib4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4d.xml
+func (gl *GL) VertexAttrib4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl3_3compat_glVertexAttrib4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4bv.xml
+func (gl *GL) VertexAttrib4bv(index glbase.Attrib, v []byte) {
+ C.gl3_3compat_glVertexAttrib4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nusv.xml
+func (gl *GL) VertexAttrib4Nusv(index glbase.Attrib, v []uint16) {
+ C.gl3_3compat_glVertexAttrib4Nusv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nuiv.xml
+func (gl *GL) VertexAttrib4Nuiv(index glbase.Attrib, v []uint32) {
+ C.gl3_3compat_glVertexAttrib4Nuiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nubv.xml
+func (gl *GL) VertexAttrib4Nubv(index glbase.Attrib, v []uint8) {
+ C.gl3_3compat_glVertexAttrib4Nubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nub.xml
+func (gl *GL) VertexAttrib4Nub(index glbase.Attrib, x, y, z, w uint8) {
+ C.gl3_3compat_glVertexAttrib4Nub(gl.funcs, C.GLuint(index), C.GLubyte(x), C.GLubyte(y), C.GLubyte(z), C.GLubyte(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nsv.xml
+func (gl *GL) VertexAttrib4Nsv(index glbase.Attrib, v []int16) {
+ C.gl3_3compat_glVertexAttrib4Nsv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Niv.xml
+func (gl *GL) VertexAttrib4Niv(index glbase.Attrib, v []int32) {
+ C.gl3_3compat_glVertexAttrib4Niv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib4Nbv.xml
+func (gl *GL) VertexAttrib4Nbv(index glbase.Attrib, v []byte) {
+ C.gl3_3compat_glVertexAttrib4Nbv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3sv.xml
+func (gl *GL) VertexAttrib3sv(index glbase.Attrib, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib3sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3s.xml
+func (gl *GL) VertexAttrib3s(index glbase.Attrib, x, y, z int16) {
+ C.gl3_3compat_glVertexAttrib3s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gl3_3compat_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3dv.xml
+func (gl *GL) VertexAttrib3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib3d.xml
+func (gl *GL) VertexAttrib3d(index glbase.Attrib, x, y, z float64) {
+ C.gl3_3compat_glVertexAttrib3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2sv.xml
+func (gl *GL) VertexAttrib2sv(index glbase.Attrib, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib2sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2s.xml
+func (gl *GL) VertexAttrib2s(index glbase.Attrib, x, y int16) {
+ C.gl3_3compat_glVertexAttrib2s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gl3_3compat_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2dv.xml
+func (gl *GL) VertexAttrib2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttrib2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib2d.xml
+func (gl *GL) VertexAttrib2d(index glbase.Attrib, x, y float64) {
+ C.gl3_3compat_glVertexAttrib2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1sv.xml
+func (gl *GL) VertexAttrib1sv(index glbase.Attrib, v []int16) {
+ C.gl3_3compat_glVertexAttrib1sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1s.xml
+func (gl *GL) VertexAttrib1s(index glbase.Attrib, x int16) {
+ C.gl3_3compat_glVertexAttrib1s(gl.funcs, C.GLuint(index), C.GLshort(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, v []float32) {
+ C.gl3_3compat_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gl3_3compat_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1dv.xml
+func (gl *GL) VertexAttrib1dv(index glbase.Attrib, v []float64) {
+ C.gl3_3compat_glVertexAttrib1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttrib1d.xml
+func (gl *GL) VertexAttrib1d(index glbase.Attrib, x float64) {
+ C.gl3_3compat_glVertexAttrib1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4usv.xml
+func (gl *GL) VertexAttribI4usv(index glbase.Attrib, v []uint16) {
+ C.gl3_3compat_glVertexAttribI4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4ubv.xml
+func (gl *GL) VertexAttribI4ubv(index glbase.Attrib, v []uint8) {
+ C.gl3_3compat_glVertexAttribI4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4sv.xml
+func (gl *GL) VertexAttribI4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttribI4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4bv.xml
+func (gl *GL) VertexAttribI4bv(index glbase.Attrib, v []byte) {
+ C.gl3_3compat_glVertexAttribI4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4uiv.xml
+func (gl *GL) VertexAttribI4uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_3compat_glVertexAttribI4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3uiv.xml
+func (gl *GL) VertexAttribI3uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_3compat_glVertexAttribI3uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2uiv.xml
+func (gl *GL) VertexAttribI2uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_3compat_glVertexAttribI2uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1uiv.xml
+func (gl *GL) VertexAttribI1uiv(index glbase.Attrib, v []uint32) {
+ C.gl3_3compat_glVertexAttribI1uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4iv.xml
+func (gl *GL) VertexAttribI4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttribI4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3iv.xml
+func (gl *GL) VertexAttribI3iv(index glbase.Attrib, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttribI3iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2iv.xml
+func (gl *GL) VertexAttribI2iv(index glbase.Attrib, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl3_3compat_glVertexAttribI2iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1iv.xml
+func (gl *GL) VertexAttribI1iv(index glbase.Attrib, v []int32) {
+ C.gl3_3compat_glVertexAttribI1iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4ui.xml
+func (gl *GL) VertexAttribI4ui(index glbase.Attrib, x, y, z, w uint32) {
+ C.gl3_3compat_glVertexAttribI4ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z), C.GLuint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3ui.xml
+func (gl *GL) VertexAttribI3ui(index glbase.Attrib, x, y, z uint32) {
+ C.gl3_3compat_glVertexAttribI3ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2ui.xml
+func (gl *GL) VertexAttribI2ui(index glbase.Attrib, x, y uint32) {
+ C.gl3_3compat_glVertexAttribI2ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1ui.xml
+func (gl *GL) VertexAttribI1ui(index glbase.Attrib, x uint32) {
+ C.gl3_3compat_glVertexAttribI1ui(gl.funcs, C.GLuint(index), C.GLuint(x))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI4i.xml
+func (gl *GL) VertexAttribI4i(index glbase.Attrib, x, y, z, w int) {
+ C.gl3_3compat_glVertexAttribI4i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI3i.xml
+func (gl *GL) VertexAttribI3i(index glbase.Attrib, x, y, z int) {
+ C.gl3_3compat_glVertexAttribI3i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI2i.xml
+func (gl *GL) VertexAttribI2i(index glbase.Attrib, x, y int) {
+ C.gl3_3compat_glVertexAttribI2i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribI1i.xml
+func (gl *GL) VertexAttribI1i(index glbase.Attrib, x int) {
+ C.gl3_3compat_glVertexAttribI1i(gl.funcs, C.GLuint(index), C.GLint(x))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/funcs.cpp
new file mode 100644
index 000000000..b03b94ac9
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/funcs.cpp
@@ -0,0 +1,1878 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_3_3_core.h>
+
+#include "funcs.h"
+
+void *gl3_3core_funcs() {
+ QOpenGLFunctions_3_3_Core* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_3_3_Core>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl3_3core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl3_3core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl3_3core_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl3_3core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl3_3core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl3_3core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl3_3core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl3_3core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl3_3core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl3_3core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl3_3core_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl3_3core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl3_3core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl3_3core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl3_3core_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl3_3core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl3_3core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl3_3core_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl3_3core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl3_3core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl3_3core_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl3_3core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl3_3core_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl3_3core_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl3_3core_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl3_3core_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl3_3core_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl3_3core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl3_3core_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl3_3core_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl3_3core_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl3_3core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl3_3core_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl3_3core_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl3_3core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl3_3core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl3_3core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl3_3core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl3_3core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl3_3core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl3_3core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl3_3core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl3_3core_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl3_3core_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl3_3core_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl3_3core_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl3_3core_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl3_3core_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl3_3core_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl3_3core_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl3_3core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl3_3core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl3_3core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl3_3core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl3_3core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl3_3core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl3_3core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl3_3core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl3_3core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl3_3core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl3_3core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl3_3core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl3_3core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl3_3core_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_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl3_3core_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_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl3_3core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl3_3core_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl3_3core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl3_3core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl3_3core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl3_3core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl3_3core_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_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl3_3core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl3_3core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl3_3core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl3_3core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl3_3core_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl3_3core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl3_3core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl3_3core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl3_3core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl3_3core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl3_3core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl3_3core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl3_3core_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl3_3core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl3_3core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl3_3core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl3_3core_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl3_3core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl3_3core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl3_3core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl3_3core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl3_3core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl3_3core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl3_3core_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl3_3core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl3_3core_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl3_3core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl3_3core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl3_3core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl3_3core_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl3_3core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl3_3core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl3_3core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl3_3core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl3_3core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl3_3core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl3_3core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl3_3core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl3_3core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl3_3core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl3_3core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl3_3core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl3_3core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl3_3core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl3_3core_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl3_3core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl3_3core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl3_3core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl3_3core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl3_3core_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl3_3core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl3_3core_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl3_3core_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl3_3core_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl3_3core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl3_3core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl3_3core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl3_3core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl3_3core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl3_3core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl3_3core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl3_3core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl3_3core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl3_3core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl3_3core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl3_3core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl3_3core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl3_3core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_3core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_3core_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl3_3core_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl3_3core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl3_3core_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl3_3core_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl3_3core_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl3_3core_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl3_3core_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl3_3core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl3_3core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl3_3core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl3_3core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl3_3core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl3_3core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl3_3core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl3_3core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl3_3core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl3_3core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl3_3core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl3_3core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl3_3core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl3_3core_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl3_3core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl3_3core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl3_3core_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl3_3core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl3_3core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl3_3core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl3_3core_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_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl3_3core_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl3_3core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl3_3core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl3_3core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl3_3core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl3_3core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl3_3core_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl3_3core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl3_3core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl3_3core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl3_3core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl3_3core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl3_3core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl3_3core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl3_3core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl3_3core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl3_3core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl3_3core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl3_3core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl3_3core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl3_3core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl3_3core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl3_3core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl3_3core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl3_3core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl3_3core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl3_3core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl3_3core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl3_3core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl3_3core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl3_3core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl3_3core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl3_3core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl3_3core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl3_3core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl3_3core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl3_3core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl3_3core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl3_3core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl3_3core_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl3_3core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl3_3core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl3_3core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl3_3core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl3_3core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl3_3core_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl3_3core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl3_3core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl3_3core_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl3_3core_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl3_3core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl3_3core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl3_3core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl3_3core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl3_3core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl3_3core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl3_3core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl3_3core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl3_3core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl3_3core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl3_3core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl3_3core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl3_3core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl3_3core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl3_3core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl3_3core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl3_3core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl3_3core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl3_3core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl3_3core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl3_3core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl3_3core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl3_3core_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl3_3core_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl3_3core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl3_3core_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl3_3core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl3_3core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl3_3core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl3_3core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl3_3core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl3_3core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl3_3core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl3_3core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl3_3core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl3_3core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl3_3core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl3_3core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl3_3core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl3_3core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl3_3core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl3_3core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl3_3core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl3_3core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl3_3core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl3_3core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl3_3core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl3_3core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl3_3core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl3_3core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl3_3core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl3_3core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl3_3core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl3_3core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl3_3core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl3_3core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl3_3core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl3_3core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl3_3core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl3_3core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl3_3core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl3_3core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl3_3core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl3_3core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl3_3core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl3_3core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl3_3core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl3_3core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl3_3core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl3_3core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl3_3core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl3_3core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl3_3core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl3_3core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl3_3core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl3_3core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl3_3core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl3_3core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl3_3core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl3_3core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl3_3core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl3_3core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl3_3core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl3_3core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl3_3core_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl3_3core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl3_3core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl3_3core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl3_3core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl3_3core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_3_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_3_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/funcs.h
new file mode 100644
index 000000000..77017a8c7
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/funcs.h
@@ -0,0 +1,352 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl3_3core_funcs();
+
+void gl3_3core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_3core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl3_3core_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl3_3core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl3_3core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl3_3core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl3_3core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_3core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl3_3core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl3_3core_glGetError(void *_glfuncs);
+void gl3_3core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl3_3core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl3_3core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl3_3core_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl3_3core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl3_3core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_3core_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl3_3core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl3_3core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_3core_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl3_3core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl3_3core_glFlush(void *_glfuncs);
+void gl3_3core_glFinish(void *_glfuncs);
+void gl3_3core_glEnable(void *_glfuncs, GLenum cap);
+void gl3_3core_glDisable(void *_glfuncs, GLenum cap);
+void gl3_3core_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl3_3core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl3_3core_glStencilMask(void *_glfuncs, GLuint mask);
+void gl3_3core_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl3_3core_glClearStencil(void *_glfuncs, GLint s);
+void gl3_3core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_3core_glClear(void *_glfuncs, GLbitfield mask);
+void gl3_3core_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl3_3core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_3core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl3_3core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl3_3core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl3_3core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_3core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl3_3core_glPointSize(void *_glfuncs, GLfloat size);
+void gl3_3core_glLineWidth(void *_glfuncs, GLfloat width);
+void gl3_3core_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl3_3core_glFrontFace(void *_glfuncs, GLenum mode);
+void gl3_3core_glCullFace(void *_glfuncs, GLenum mode);
+void gl3_3core_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl3_3core_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl3_3core_glIsTexture(void *_glfuncs, GLuint texture);
+void gl3_3core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl3_3core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl3_3core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl3_3core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_3core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl3_3core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl3_3core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl3_3core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl3_3core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_3core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl3_3core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl3_3core_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);
+void gl3_3core_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl3_3core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl3_3core_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl3_3core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl3_3core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl3_3core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_3core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl3_3core_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);
+void gl3_3core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_3core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_3core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl3_3core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl3_3core_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl3_3core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl3_3core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl3_3core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl3_3core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl3_3core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl3_3core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl3_3core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl3_3core_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl3_3core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl3_3core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl3_3core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl3_3core_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl3_3core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl3_3core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl3_3core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl3_3core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl3_3core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl3_3core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3core_glEndQuery(void *_glfuncs, GLenum target);
+void gl3_3core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl3_3core_glIsQuery(void *_glfuncs, GLuint id);
+void gl3_3core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl3_3core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl3_3core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl3_3core_glValidateProgram(void *_glfuncs, GLuint program);
+void gl3_3core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_3core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_3core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_3core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl3_3core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_3core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_3core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_3core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl3_3core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl3_3core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl3_3core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl3_3core_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl3_3core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl3_3core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl3_3core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl3_3core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl3_3core_glUseProgram(void *_glfuncs, GLuint program);
+void gl3_3core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl3_3core_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl3_3core_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl3_3core_glIsProgram(void *_glfuncs, GLuint program);
+void gl3_3core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_3core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl3_3core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl3_3core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl3_3core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl3_3core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_3core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl3_3core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_3core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl3_3core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl3_3core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl3_3core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_3core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl3_3core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_3core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl3_3core_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_3core_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl3_3core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_3core_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl3_3core_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl3_3core_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl3_3core_glCreateProgram(void *_glfuncs);
+void gl3_3core_glCompileShader(void *_glfuncs, GLuint shader);
+void gl3_3core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl3_3core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl3_3core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl3_3core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl3_3core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl3_3core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl3_3core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl3_3core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl3_3core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl3_3core_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl3_3core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl3_3core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl3_3core_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl3_3core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl3_3core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl3_3core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_3core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl3_3core_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl3_3core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl3_3core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl3_3core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl3_3core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl3_3core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl3_3core_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl3_3core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl3_3core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl3_3core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl3_3core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl3_3core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl3_3core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl3_3core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl3_3core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl3_3core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl3_3core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl3_3core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl3_3core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl3_3core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl3_3core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl3_3core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl3_3core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl3_3core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl3_3core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_3core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_3core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_3core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl3_3core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl3_3core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl3_3core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl3_3core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl3_3core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_3core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl3_3core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl3_3core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl3_3core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl3_3core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl3_3core_glEndConditionalRender(void *_glfuncs);
+void gl3_3core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl3_3core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl3_3core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl3_3core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl3_3core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl3_3core_glEndTransformFeedback(void *_glfuncs);
+void gl3_3core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl3_3core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl3_3core_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_3core_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl3_3core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl3_3core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl3_3core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl3_3core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl3_3core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl3_3core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl3_3core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl3_3core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl3_3core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl3_3core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl3_3core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl3_3core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl3_3core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl3_3core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl3_3core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl3_3core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl3_3core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl3_3core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl3_3core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl3_3core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl3_3core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl3_3core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl3_3core_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl3_3core_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl3_3core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl3_3core_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl3_3core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl3_3core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl3_3core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl3_3core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl3_3core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl3_3core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl3_3core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl3_3core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl3_3core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl3_3core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl3_3core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl3_3core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl3_3core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl3_3core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl3_3core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl3_3core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl3_3core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl3_3core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl3_3core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl3_3core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl3_3core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl3_3core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl3_3core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl3_3core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl3_3core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl3_3core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl3_3core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl3_3core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl3_3core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl3_3core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl3_3core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl3_3core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl3_3core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl3_3core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl3_3core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl3_3core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl3_3core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl3_3core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl3_3core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl3_3core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl3_3core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl3_3core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl3_3core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl3_3core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl3_3core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl3_3core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl3_3core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl3_3core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl3_3core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl3_3core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl3_3core_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl3_3core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl3_3core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl3_3core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl3_3core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl3_3core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/gl.go
new file mode 100644
index 000000000..13e2a4a94
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/3.3core/gl.go
@@ -0,0 +1,5489 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 3.3 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl3_3core_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 3.3 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 3.3 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ RGB10_A2UI = 0x906F
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+)
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl3_3core_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl3_3core_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl3_3core_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl3_3core_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3core_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl3_3core_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl3_3core_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl3_3core_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl3_3core_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl3_3core_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl3_3core_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl3_3core_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl3_3core_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl3_3core_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_3core_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl3_3core_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl3_3core_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl3_3core_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl3_3core_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl3_3core_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl3_3core_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl3_3core_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl3_3core_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl3_3core_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl3_3core_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl3_3core_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl3_3core_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl3_3core_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl3_3core_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl3_3core_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl3_3core_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl3_3core_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl3_3core_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl3_3core_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl3_3core_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl3_3core_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl3_3core_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl3_3core_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl3_3core_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl3_3core_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl3_3core_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl3_3core_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl3_3core_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl3_3core_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl3_3core_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl3_3core_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl3_3core_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl3_3core_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl3_3core_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl3_3core_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl3_3core_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl3_3core_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl3_3core_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl3_3core_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl3_3core_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl3_3core_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl3_3core_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl3_3core_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl3_3core_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl3_3core_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl3_3core_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl3_3core_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl3_3core_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl3_3core_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl3_3core_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl3_3core_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_3core_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_3core_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl3_3core_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl3_3core_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl3_3core_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl3_3core_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl3_3core_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl3_3core_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl3_3core_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl3_3core_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl3_3core_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl3_3core_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl3_3core_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl3_3core_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl3_3core_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl3_3core_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_3core_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl3_3core_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl3_3core_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl3_3core_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_3core_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl3_3core_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl3_3core_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl3_3core_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl3_3core_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl3_3core_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl3_3core_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl3_3core_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl3_3core_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl3_3core_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl3_3core_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl3_3core_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl3_3core_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl3_3core_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_3core_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl3_3core_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl3_3core_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl3_3core_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl3_3core_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_3core_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl3_3core_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_3core_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_3core_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl3_3core_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl3_3core_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl3_3core_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl3_3core_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_3core_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_3core_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_3core_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl3_3core_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_3core_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl3_3core_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl3_3core_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl3_3core_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl3_3core_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl3_3core_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl3_3core_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl3_3core_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl3_3core_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl3_3core_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl3_3core_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl3_3core_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl3_3core_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl3_3core_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl3_3core_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl3_3core_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl3_3core_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl3_3core_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl3_3core_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl3_3core_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl3_3core_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl3_3core_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl3_3core_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl3_3core_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl3_3core_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl3_3core_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl3_3core_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl3_3core_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_3core_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl3_3core_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_3core_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_3core_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl3_3core_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl3_3core_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_3core_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl3_3core_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl3_3core_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl3_3core_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl3_3core_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl3_3core_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl3_3core_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl3_3core_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl3_3core_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl3_3core_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl3_3core_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl3_3core_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_3core_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl3_3core_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl3_3core_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl3_3core_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl3_3core_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl3_3core_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl3_3core_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl3_3core_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl3_3core_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl3_3core_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl3_3core_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl3_3core_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl3_3core_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl3_3core_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl3_3core_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl3_3core_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl3_3core_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl3_3core_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl3_3core_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl3_3core_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl3_3core_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl3_3core_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl3_3core_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl3_3core_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl3_3core_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl3_3core_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl3_3core_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl3_3core_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl3_3core_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl3_3core_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl3_3core_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl3_3core_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl3_3core_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl3_3core_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl3_3core_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl3_3core_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl3_3core_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl3_3core_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl3_3core_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl3_3core_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl3_3core_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl3_3core_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl3_3core_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl3_3core_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl3_3core_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl3_3core_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl3_3core_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl3_3core_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl3_3core_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl3_3core_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl3_3core_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl3_3core_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl3_3core_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl3_3core_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl3_3core_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl3_3core_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl3_3core_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl3_3core_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl3_3core_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl3_3core_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl3_3core_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl3_3core_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl3_3core_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl3_3core_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl3_3core_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl3_3core_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3core_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3core_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl3_3core_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl3_3core_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl3_3core_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl3_3core_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl3_3core_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl3_3core_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl3_3core_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl3_3core_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3core_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3core_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3core_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3core_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3core_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3core_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl3_3core_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl3_3core_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl3_3core_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl3_3core_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl3_3core_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl3_3core_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl3_3core_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl3_3core_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl3_3core_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl3_3core_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl3_3core_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl3_3core_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl3_3core_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl3_3core_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl3_3core_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl3_3core_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl3_3core_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl3_3core_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl3_3core_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl3_3core_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl3_3core_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl3_3core_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl3_3core_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl3_3core_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl3_3core_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl3_3core_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man3/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl3_3core_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/funcs.cpp
new file mode 100644
index 000000000..1dfaf3f0d
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/funcs.cpp
@@ -0,0 +1,4764 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_4_0_compatibility.h>
+
+#include "funcs.h"
+
+void *gl4_0compat_funcs() {
+ QOpenGLFunctions_4_0_Compatibility* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_4_0_Compatibility>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl4_0compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl4_0compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl4_0compat_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl4_0compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl4_0compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl4_0compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl4_0compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl4_0compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl4_0compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl4_0compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl4_0compat_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl4_0compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl4_0compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl4_0compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl4_0compat_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl4_0compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl4_0compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl4_0compat_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl4_0compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl4_0compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl4_0compat_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl4_0compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl4_0compat_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl4_0compat_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl4_0compat_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl4_0compat_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl4_0compat_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl4_0compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl4_0compat_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl4_0compat_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl4_0compat_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl4_0compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl4_0compat_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl4_0compat_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl4_0compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl4_0compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl4_0compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl4_0compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl4_0compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl4_0compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl4_0compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl4_0compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl4_0compat_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl4_0compat_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl4_0compat_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl4_0compat_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl4_0compat_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl4_0compat_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl4_0compat_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl4_0compat_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl4_0compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl4_0compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl4_0compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl4_0compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl4_0compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl4_0compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl4_0compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl4_0compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl4_0compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl4_0compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl4_0compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl4_0compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl4_0compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl4_0compat_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_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl4_0compat_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_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl4_0compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl4_0compat_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl4_0compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl4_0compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl4_0compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl4_0compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl4_0compat_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_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl4_0compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl4_0compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl4_0compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl4_0compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl4_0compat_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl4_0compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl4_0compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl4_0compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl4_0compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl4_0compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl4_0compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl4_0compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl4_0compat_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl4_0compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl4_0compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl4_0compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl4_0compat_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl4_0compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl4_0compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl4_0compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl4_0compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl4_0compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl4_0compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl4_0compat_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl4_0compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl4_0compat_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl4_0compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl4_0compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl4_0compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl4_0compat_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl4_0compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl4_0compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl4_0compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl4_0compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl4_0compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl4_0compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl4_0compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl4_0compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl4_0compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl4_0compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl4_0compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl4_0compat_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl4_0compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl4_0compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl4_0compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl4_0compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl4_0compat_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl4_0compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl4_0compat_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl4_0compat_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl4_0compat_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl4_0compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl4_0compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl4_0compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl4_0compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl4_0compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl4_0compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl4_0compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl4_0compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl4_0compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl4_0compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl4_0compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl4_0compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl4_0compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl4_0compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_0compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_0compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl4_0compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl4_0compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl4_0compat_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl4_0compat_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl4_0compat_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl4_0compat_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl4_0compat_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl4_0compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl4_0compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl4_0compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl4_0compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl4_0compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl4_0compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl4_0compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl4_0compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl4_0compat_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl4_0compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl4_0compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl4_0compat_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl4_0compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl4_0compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl4_0compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl4_0compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl4_0compat_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl4_0compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl4_0compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl4_0compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl4_0compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl4_0compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl4_0compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl4_0compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl4_0compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl4_0compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl4_0compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl4_0compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl4_0compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl4_0compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl4_0compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl4_0compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl4_0compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl4_0compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl4_0compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl4_0compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl4_0compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl4_0compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl4_0compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl4_0compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl4_0compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl4_0compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl4_0compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl4_0compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl4_0compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl4_0compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl4_0compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl4_0compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl4_0compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl4_0compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl4_0compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl4_0compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl4_0compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl4_0compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl4_0compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_0compat_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl4_0compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl4_0compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl4_0compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_0compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl4_0compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl4_0compat_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl4_0compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl4_0compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl4_0compat_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl4_0compat_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl4_0compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl4_0compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl4_0compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl4_0compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl4_0compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl4_0compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl4_0compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl4_0compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl4_0compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl4_0compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl4_0compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl4_0compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl4_0compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl4_0compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl4_0compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl4_0compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl4_0compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_0compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_0compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl4_0compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl4_0compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl4_0compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl4_0compat_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl4_0compat_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl4_0compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl4_0compat_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl4_0compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl4_0compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl4_0compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl4_0compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl4_0compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl4_0compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl4_0compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl4_0compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl4_0compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl4_0compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl4_0compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl4_0compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl4_0compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl4_0compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl4_0compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl4_0compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl4_0compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl4_0compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl4_0compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl4_0compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl4_0compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl4_0compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl4_0compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl4_0compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl4_0compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl4_0compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl4_0compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl4_0compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl4_0compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl4_0compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl4_0compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl4_0compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl4_0compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl4_0compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl4_0compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl4_0compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl4_0compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl4_0compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl4_0compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl4_0compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl4_0compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl4_0compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl4_0compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl4_0compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl4_0compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl4_0compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl4_0compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl4_0compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl4_0compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl4_0compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl4_0compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl4_0compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl4_0compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl4_0compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl4_0compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl4_0compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl4_0compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl4_0compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl4_0compat_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl4_0compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl4_0compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl4_0compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl4_0compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl4_0compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
+void gl4_0compat_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryIndexediv(target, index, pname, params);
+}
+
+void gl4_0compat_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQueryIndexed(target, index);
+}
+
+void gl4_0compat_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQueryIndexed(target, index, id);
+}
+
+void gl4_0compat_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStream(mode, id, stream);
+}
+
+void gl4_0compat_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedback(mode, id);
+}
+
+void gl4_0compat_glResumeTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glResumeTransformFeedback();
+}
+
+void gl4_0compat_glPauseTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPauseTransformFeedback();
+}
+
+GLboolean gl4_0compat_glIsTransformFeedback(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTransformFeedback(id);
+}
+
+void gl4_0compat_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTransformFeedbacks(n, ids);
+}
+
+void gl4_0compat_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTransformFeedbacks(n, ids);
+}
+
+void gl4_0compat_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTransformFeedback(target, id);
+}
+
+void gl4_0compat_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPatchParameterfv(pname, values);
+}
+
+void gl4_0compat_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPatchParameteri(pname, value);
+}
+
+void gl4_0compat_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramStageiv(program, shadertype, pname, values);
+}
+
+void gl4_0compat_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformSubroutineuiv(shadertype, location, params);
+}
+
+void gl4_0compat_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformSubroutinesuiv(shadertype, count, value);
+}
+
+void gl4_0compat_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_0compat_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_0compat_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
+}
+
+GLuint gl4_0compat_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineIndex(program, shadertype, name);
+}
+
+GLint gl4_0compat_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineUniformLocation(program, shadertype, name);
+}
+
+void gl4_0compat_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformdv(program, location, params);
+}
+
+void gl4_0compat_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3dv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2dv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4dv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2dv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4dv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3dv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4dv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3dv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2dv(location, count, transpose, value);
+}
+
+void gl4_0compat_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4dv(location, count, value);
+}
+
+void gl4_0compat_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3dv(location, count, value);
+}
+
+void gl4_0compat_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2dv(location, count, value);
+}
+
+void gl4_0compat_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1dv(location, count, value);
+}
+
+void gl4_0compat_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4d(location, v0, v1, v2, v3);
+}
+
+void gl4_0compat_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3d(location, v0, v1, v2);
+}
+
+void gl4_0compat_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2d(location, v0, v1);
+}
+
+void gl4_0compat_glUniform1d(void *_glfuncs, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1d(location, v0);
+}
+
+void gl4_0compat_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsIndirect(mode, gltype, indirect);
+}
+
+void gl4_0compat_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysIndirect(mode, indirect);
+}
+
+void gl4_0compat_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void gl4_0compat_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunci(buf, src, dst);
+}
+
+void gl4_0compat_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
+}
+
+void gl4_0compat_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationi(buf, mode);
+}
+
+void gl4_0compat_glMinSampleShading(void *_glfuncs, GLfloat value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinSampleShading(value);
+}
+
+void gl4_0compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl4_0compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl4_0compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl4_0compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl4_0compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl4_0compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl4_0compat_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl4_0compat_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl4_0compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl4_0compat_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl4_0compat_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl4_0compat_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl4_0compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl4_0compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl4_0compat_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl4_0compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl4_0compat_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl4_0compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl4_0compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl4_0compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl4_0compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl4_0compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl4_0compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl4_0compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl4_0compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl4_0compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl4_0compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl4_0compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl4_0compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl4_0compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl4_0compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl4_0compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl4_0compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl4_0compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl4_0compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl4_0compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl4_0compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl4_0compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl4_0compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl4_0compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl4_0compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl4_0compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl4_0compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl4_0compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl4_0compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl4_0compat_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl4_0compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl4_0compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl4_0compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl4_0compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl4_0compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl4_0compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl4_0compat_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl4_0compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl4_0compat_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl4_0compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl4_0compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl4_0compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl4_0compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl4_0compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl4_0compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl4_0compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl4_0compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl4_0compat_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl4_0compat_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl4_0compat_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl4_0compat_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl4_0compat_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl4_0compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl4_0compat_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl4_0compat_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl4_0compat_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl4_0compat_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl4_0compat_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl4_0compat_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl4_0compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl4_0compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl4_0compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl4_0compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl4_0compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl4_0compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl4_0compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl4_0compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl4_0compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl4_0compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl4_0compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl4_0compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl4_0compat_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl4_0compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl4_0compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl4_0compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl4_0compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl4_0compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl4_0compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl4_0compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl4_0compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl4_0compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl4_0compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl4_0compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl4_0compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl4_0compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl4_0compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl4_0compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl4_0compat_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl4_0compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl4_0compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl4_0compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl4_0compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl4_0compat_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl4_0compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl4_0compat_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl4_0compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl4_0compat_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl4_0compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl4_0compat_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl4_0compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl4_0compat_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl4_0compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl4_0compat_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl4_0compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl4_0compat_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl4_0compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl4_0compat_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl4_0compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl4_0compat_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl4_0compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl4_0compat_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl4_0compat_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl4_0compat_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl4_0compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl4_0compat_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl4_0compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl4_0compat_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl4_0compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl4_0compat_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl4_0compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl4_0compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl4_0compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl4_0compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl4_0compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl4_0compat_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl4_0compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl4_0compat_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl4_0compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl4_0compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl4_0compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl4_0compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl4_0compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl4_0compat_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl4_0compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl4_0compat_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl4_0compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl4_0compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl4_0compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl4_0compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl4_0compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl4_0compat_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl4_0compat_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl4_0compat_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl4_0compat_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl4_0compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl4_0compat_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl4_0compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl4_0compat_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl4_0compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl4_0compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl4_0compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl4_0compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl4_0compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl4_0compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl4_0compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl4_0compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl4_0compat_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl4_0compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl4_0compat_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl4_0compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl4_0compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl4_0compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl4_0compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl4_0compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl4_0compat_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl4_0compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl4_0compat_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl4_0compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl4_0compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl4_0compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl4_0compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl4_0compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl4_0compat_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl4_0compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl4_0compat_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl4_0compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl4_0compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl4_0compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl4_0compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl4_0compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl4_0compat_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl4_0compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl4_0compat_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl4_0compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl4_0compat_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl4_0compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl4_0compat_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl4_0compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl4_0compat_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl4_0compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl4_0compat_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl4_0compat_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl4_0compat_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl4_0compat_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl4_0compat_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl4_0compat_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl4_0compat_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl4_0compat_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl4_0compat_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl4_0compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl4_0compat_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl4_0compat_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl4_0compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl4_0compat_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl4_0compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl4_0compat_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl4_0compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl4_0compat_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl4_0compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl4_0compat_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl4_0compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl4_0compat_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl4_0compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl4_0compat_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl4_0compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl4_0compat_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl4_0compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl4_0compat_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl4_0compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl4_0compat_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl4_0compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl4_0compat_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl4_0compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl4_0compat_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl4_0compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl4_0compat_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl4_0compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl4_0compat_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl4_0compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl4_0compat_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl4_0compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl4_0compat_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl4_0compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl4_0compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl4_0compat_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl4_0compat_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl4_0compat_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl4_0compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl4_0compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl4_0compat_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl4_0compat_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl4_0compat_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl4_0compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl4_0compat_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl4_0compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl4_0compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl4_0compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl4_0compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl4_0compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl4_0compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl4_0compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl4_0compat_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl4_0compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl4_0compat_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl4_0compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl4_0compat_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl4_0compat_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl4_0compat_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl4_0compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl4_0compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl4_0compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl4_0compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl4_0compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl4_0compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl4_0compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl4_0compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl4_0compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl4_0compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl4_0compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl4_0compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl4_0compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl4_0compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl4_0compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl4_0compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl4_0compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl4_0compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl4_0compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl4_0compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl4_0compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl4_0compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl4_0compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl4_0compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl4_0compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl4_0compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl4_0compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl4_0compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl4_0compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl4_0compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl4_0compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl4_0compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl4_0compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl4_0compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl4_0compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl4_0compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl4_0compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl4_0compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl4_0compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl4_0compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl4_0compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl4_0compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl4_0compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl4_0compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl4_0compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl4_0compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl4_0compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl4_0compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl4_0compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl4_0compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl4_0compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl4_0compat_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl4_0compat_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl4_0compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl4_0compat_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl4_0compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl4_0compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl4_0compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl4_0compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl4_0compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl4_0compat_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl4_0compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl4_0compat_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl4_0compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl4_0compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl4_0compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl4_0compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl4_0compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl4_0compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl4_0compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl4_0compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl4_0compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl4_0compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl4_0compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl4_0compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl4_0compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl4_0compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl4_0compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl4_0compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl4_0compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl4_0compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl4_0compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl4_0compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl4_0compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl4_0compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl4_0compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl4_0compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl4_0compat_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl4_0compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl4_0compat_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
+void gl4_0compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4usv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4uiv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4ubv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4sv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4s(index, x, y, z, w);
+}
+
+void gl4_0compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4iv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gl4_0compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4dv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4d(index, x, y, z, w);
+}
+
+void gl4_0compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4bv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nusv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nuiv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nubv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nub(index, x, y, z, w);
+}
+
+void gl4_0compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nsv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Niv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nbv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3sv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3s(index, x, y, z);
+}
+
+void gl4_0compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gl4_0compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3dv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3d(index, x, y, z);
+}
+
+void gl4_0compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2sv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2s(index, x, y);
+}
+
+void gl4_0compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gl4_0compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2dv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2d(index, x, y);
+}
+
+void gl4_0compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1sv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1s(index, x);
+}
+
+void gl4_0compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gl4_0compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1dv(index, v);
+}
+
+void gl4_0compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1d(index, x);
+}
+
+void gl4_0compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4usv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ubv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4sv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4bv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4uiv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3uiv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2uiv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1uiv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4iv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3iv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2iv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1iv(index, v);
+}
+
+void gl4_0compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ui(index, x, y, z, w);
+}
+
+void gl4_0compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3ui(index, x, y, z);
+}
+
+void gl4_0compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2ui(index, x, y);
+}
+
+void gl4_0compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1ui(index, x);
+}
+
+void gl4_0compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4i(index, x, y, z, w);
+}
+
+void gl4_0compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3i(index, x, y, z);
+}
+
+void gl4_0compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2i(index, x, y);
+}
+
+void gl4_0compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x)
+{
+ QOpenGLFunctions_4_0_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1i(index, x);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/funcs.h
new file mode 100644
index 000000000..e556b7357
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/funcs.h
@@ -0,0 +1,833 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl4_0compat_funcs();
+
+void gl4_0compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_0compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl4_0compat_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl4_0compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl4_0compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_0compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl4_0compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl4_0compat_glGetError(void *_glfuncs);
+void gl4_0compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl4_0compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl4_0compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_0compat_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl4_0compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl4_0compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_0compat_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl4_0compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl4_0compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_0compat_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl4_0compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl4_0compat_glFlush(void *_glfuncs);
+void gl4_0compat_glFinish(void *_glfuncs);
+void gl4_0compat_glEnable(void *_glfuncs, GLenum cap);
+void gl4_0compat_glDisable(void *_glfuncs, GLenum cap);
+void gl4_0compat_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl4_0compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl4_0compat_glStencilMask(void *_glfuncs, GLuint mask);
+void gl4_0compat_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl4_0compat_glClearStencil(void *_glfuncs, GLint s);
+void gl4_0compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_0compat_glClear(void *_glfuncs, GLbitfield mask);
+void gl4_0compat_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl4_0compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_0compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_0compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_0compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_0compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_0compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_0compat_glPointSize(void *_glfuncs, GLfloat size);
+void gl4_0compat_glLineWidth(void *_glfuncs, GLfloat width);
+void gl4_0compat_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl4_0compat_glFrontFace(void *_glfuncs, GLenum mode);
+void gl4_0compat_glCullFace(void *_glfuncs, GLenum mode);
+void gl4_0compat_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl4_0compat_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl4_0compat_glIsTexture(void *_glfuncs, GLuint texture);
+void gl4_0compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl4_0compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl4_0compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl4_0compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_0compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl4_0compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl4_0compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl4_0compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl4_0compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_0compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl4_0compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_0compat_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);
+void gl4_0compat_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_0compat_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl4_0compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_0compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl4_0compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_0compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_0compat_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);
+void gl4_0compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_0compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_0compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_0compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl4_0compat_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_0compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_0compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl4_0compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_0compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_0compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl4_0compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl4_0compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl4_0compat_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl4_0compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl4_0compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl4_0compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl4_0compat_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl4_0compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl4_0compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl4_0compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl4_0compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl4_0compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl4_0compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0compat_glEndQuery(void *_glfuncs, GLenum target);
+void gl4_0compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl4_0compat_glIsQuery(void *_glfuncs, GLuint id);
+void gl4_0compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_0compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_0compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl4_0compat_glValidateProgram(void *_glfuncs, GLuint program);
+void gl4_0compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_0compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_0compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_0compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_0compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_0compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_0compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_0compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_0compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_0compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_0compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl4_0compat_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl4_0compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_0compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_0compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl4_0compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl4_0compat_glUseProgram(void *_glfuncs, GLuint program);
+void gl4_0compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl4_0compat_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl4_0compat_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl4_0compat_glIsProgram(void *_glfuncs, GLuint program);
+void gl4_0compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_0compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_0compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl4_0compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl4_0compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_0compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl4_0compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_0compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl4_0compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_0compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl4_0compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_0compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl4_0compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_0compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_0compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_0compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_0compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_0compat_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl4_0compat_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl4_0compat_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl4_0compat_glCreateProgram(void *_glfuncs);
+void gl4_0compat_glCompileShader(void *_glfuncs, GLuint shader);
+void gl4_0compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl4_0compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_0compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl4_0compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_0compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl4_0compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl4_0compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl4_0compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl4_0compat_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl4_0compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl4_0compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl4_0compat_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl4_0compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl4_0compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl4_0compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_0compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl4_0compat_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl4_0compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl4_0compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl4_0compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl4_0compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl4_0compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl4_0compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl4_0compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl4_0compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl4_0compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl4_0compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl4_0compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_0compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl4_0compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl4_0compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl4_0compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl4_0compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl4_0compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl4_0compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl4_0compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl4_0compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl4_0compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl4_0compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_0compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_0compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_0compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_0compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_0compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_0compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_0compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl4_0compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl4_0compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_0compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl4_0compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl4_0compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl4_0compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_0compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glEndConditionalRender(void *_glfuncs);
+void gl4_0compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl4_0compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl4_0compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl4_0compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl4_0compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_0compat_glEndTransformFeedback(void *_glfuncs);
+void gl4_0compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl4_0compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl4_0compat_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_0compat_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_0compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl4_0compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl4_0compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl4_0compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl4_0compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl4_0compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl4_0compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl4_0compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl4_0compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl4_0compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl4_0compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl4_0compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl4_0compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl4_0compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl4_0compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl4_0compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl4_0compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_0compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_0compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl4_0compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl4_0compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl4_0compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl4_0compat_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl4_0compat_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl4_0compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl4_0compat_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl4_0compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl4_0compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_0compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_0compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl4_0compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl4_0compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl4_0compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_0compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_0compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_0compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_0compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_0compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_0compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_0compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_0compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_0compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_0compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_0compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_0compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_0compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_0compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_0compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_0compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_0compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_0compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_0compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_0compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_0compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_0compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_0compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_0compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_0compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_0compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_0compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_0compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl4_0compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl4_0compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl4_0compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl4_0compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_0compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_0compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl4_0compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_0compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl4_0compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl4_0compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_0compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl4_0compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl4_0compat_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl4_0compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl4_0compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl4_0compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_0compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl4_0compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+void gl4_0compat_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params);
+void gl4_0compat_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index);
+void gl4_0compat_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id);
+void gl4_0compat_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream);
+void gl4_0compat_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id);
+void gl4_0compat_glResumeTransformFeedback(void *_glfuncs);
+void gl4_0compat_glPauseTransformFeedback(void *_glfuncs);
+GLboolean gl4_0compat_glIsTransformFeedback(void *_glfuncs, GLuint id);
+void gl4_0compat_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_0compat_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_0compat_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id);
+void gl4_0compat_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values);
+void gl4_0compat_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value);
+void gl4_0compat_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values);
+void gl4_0compat_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params);
+void gl4_0compat_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value);
+void gl4_0compat_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_0compat_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_0compat_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
+GLuint gl4_0compat_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+GLint gl4_0compat_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+void gl4_0compat_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params);
+void gl4_0compat_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0compat_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0compat_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0compat_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0compat_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0compat_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0compat_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0compat_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0compat_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0compat_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_0compat_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_0compat_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_0compat_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_0compat_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_0compat_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_0compat_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1);
+void gl4_0compat_glUniform1d(void *_glfuncs, GLint location, GLdouble v0);
+void gl4_0compat_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect);
+void gl4_0compat_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect);
+void gl4_0compat_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+void gl4_0compat_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst);
+void gl4_0compat_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+void gl4_0compat_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode);
+void gl4_0compat_glMinSampleShading(void *_glfuncs, GLfloat value);
+void gl4_0compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_0compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_0compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_0compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_0compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl4_0compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl4_0compat_glPushMatrix(void *_glfuncs);
+void gl4_0compat_glPopMatrix(void *_glfuncs);
+void gl4_0compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl4_0compat_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_0compat_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_0compat_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl4_0compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_0compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_0compat_glLoadIdentity(void *_glfuncs);
+void gl4_0compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl4_0compat_glIsList(void *_glfuncs, GLuint list);
+void gl4_0compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl4_0compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl4_0compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl4_0compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl4_0compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl4_0compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl4_0compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl4_0compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl4_0compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl4_0compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl4_0compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl4_0compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl4_0compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl4_0compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl4_0compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl4_0compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl4_0compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl4_0compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_0compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl4_0compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl4_0compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl4_0compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl4_0compat_glEvalPoint1(void *_glfuncs, GLint i);
+void gl4_0compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl4_0compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl4_0compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl4_0compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl4_0compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl4_0compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl4_0compat_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl4_0compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl4_0compat_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl4_0compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl4_0compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl4_0compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl4_0compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl4_0compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl4_0compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl4_0compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl4_0compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl4_0compat_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl4_0compat_glPopAttrib(void *_glfuncs);
+void gl4_0compat_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl4_0compat_glIndexMask(void *_glfuncs, GLuint mask);
+void gl4_0compat_glClearIndex(void *_glfuncs, GLfloat c);
+void gl4_0compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_0compat_glPushName(void *_glfuncs, GLuint name);
+void gl4_0compat_glPopName(void *_glfuncs);
+void gl4_0compat_glPassThrough(void *_glfuncs, GLfloat token);
+void gl4_0compat_glLoadName(void *_glfuncs, GLuint name);
+void gl4_0compat_glInitNames(void *_glfuncs);
+GLint gl4_0compat_glRenderMode(void *_glfuncs, GLenum mode);
+void gl4_0compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl4_0compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl4_0compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl4_0compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl4_0compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl4_0compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl4_0compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl4_0compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl4_0compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_0compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_0compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_0compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_0compat_glShadeModel(void *_glfuncs, GLenum mode);
+void gl4_0compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl4_0compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl4_0compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl4_0compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl4_0compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl4_0compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl4_0compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_0compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl4_0compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_0compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_0compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl4_0compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl4_0compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl4_0compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl4_0compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_0compat_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl4_0compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_0compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_0compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_0compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl4_0compat_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_0compat_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl4_0compat_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_0compat_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_0compat_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_0compat_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_0compat_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_0compat_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_0compat_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_0compat_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl4_0compat_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_0compat_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_0compat_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl4_0compat_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl4_0compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl4_0compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl4_0compat_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl4_0compat_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl4_0compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl4_0compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl4_0compat_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl4_0compat_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl4_0compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl4_0compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl4_0compat_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl4_0compat_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glTexCoord1i(void *_glfuncs, GLint s);
+void gl4_0compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl4_0compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl4_0compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl4_0compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl4_0compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl4_0compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl4_0compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl4_0compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl4_0compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl4_0compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl4_0compat_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_0compat_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl4_0compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_0compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_0compat_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_0compat_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_0compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_0compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_0compat_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_0compat_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl4_0compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_0compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_0compat_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl4_0compat_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl4_0compat_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl4_0compat_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl4_0compat_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl4_0compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl4_0compat_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl4_0compat_glIndexs(void *_glfuncs, GLshort c);
+void gl4_0compat_glIndexiv(void *_glfuncs, const GLint* c);
+void gl4_0compat_glIndexi(void *_glfuncs, GLint c);
+void gl4_0compat_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl4_0compat_glIndexf(void *_glfuncs, GLfloat c);
+void gl4_0compat_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl4_0compat_glIndexd(void *_glfuncs, GLdouble c);
+void gl4_0compat_glEnd(void *_glfuncs);
+void gl4_0compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl4_0compat_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl4_0compat_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl4_0compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl4_0compat_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl4_0compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl4_0compat_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl4_0compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl4_0compat_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl4_0compat_glColor4iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl4_0compat_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_0compat_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl4_0compat_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl4_0compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl4_0compat_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl4_0compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl4_0compat_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl4_0compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl4_0compat_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl4_0compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl4_0compat_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl4_0compat_glColor3iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl4_0compat_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl4_0compat_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl4_0compat_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl4_0compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl4_0compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl4_0compat_glBegin(void *_glfuncs, GLenum mode);
+void gl4_0compat_glListBase(void *_glfuncs, GLuint base);
+GLuint gl4_0compat_glGenLists(void *_glfuncs, GLsizei range_);
+void gl4_0compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl4_0compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl4_0compat_glCallList(void *_glfuncs, GLuint list);
+void gl4_0compat_glEndList(void *_glfuncs);
+void gl4_0compat_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl4_0compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl4_0compat_glPopClientAttrib(void *_glfuncs);
+void gl4_0compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl4_0compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl4_0compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glEnableClientState(void *_glfuncs, GLenum array);
+void gl4_0compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glDisableClientState(void *_glfuncs, GLenum array);
+void gl4_0compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glArrayElement(void *_glfuncs, GLint i);
+void gl4_0compat_glResetMinmax(void *_glfuncs, GLenum target);
+void gl4_0compat_glResetHistogram(void *_glfuncs, GLenum target);
+void gl4_0compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl4_0compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl4_0compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl4_0compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl4_0compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl4_0compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl4_0compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl4_0compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_0compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl4_0compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_0compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl4_0compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_0compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl4_0compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl4_0compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl4_0compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl4_0compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl4_0compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_0compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl4_0compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl4_0compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_0compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_0compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl4_0compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_0compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_0compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_0compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_0compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_0compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl4_0compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_0compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl4_0compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_0compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl4_0compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_0compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl4_0compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_0compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl4_0compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_0compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl4_0compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_0compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl4_0compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_0compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl4_0compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_0compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl4_0compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_0compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl4_0compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_0compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl4_0compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_0compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl4_0compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_0compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl4_0compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_0compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl4_0compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_0compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl4_0compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_0compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl4_0compat_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_0compat_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_0compat_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_0compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_0compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_0compat_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_0compat_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl4_0compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_0compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_0compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl4_0compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl4_0compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl4_0compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl4_0compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl4_0compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl4_0compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl4_0compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl4_0compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl4_0compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl4_0compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl4_0compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl4_0compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl4_0compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl4_0compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl4_0compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl4_0compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_0compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl4_0compat_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl4_0compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl4_0compat_glFogCoordf(void *_glfuncs, GLfloat coord);
+void gl4_0compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_0compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_0compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_0compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_0compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_0compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_0compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_0compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_0compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_0compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_0compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_0compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_0compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_0compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_0compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+void gl4_0compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_0compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_0compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_0compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_0compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z);
+void gl4_0compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_0compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gl4_0compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_0compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_0compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_0compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y);
+void gl4_0compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_0compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gl4_0compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_0compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_0compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_0compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x);
+void gl4_0compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_0compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gl4_0compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_0compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_0compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_0compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_0compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_0compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_0compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_0compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_0compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_0compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_0compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_0compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_0compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_0compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_0compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+void gl4_0compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z);
+void gl4_0compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y);
+void gl4_0compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x);
+void gl4_0compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w);
+void gl4_0compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z);
+void gl4_0compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y);
+void gl4_0compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/gl.go
new file mode 100644
index 000000000..246afb061
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0compat/gl.go
@@ -0,0 +1,8607 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 4.0 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl4_0compat_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 4.0 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 4.0 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ PATCHES = 0x000E
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ INDEX = 0x8222
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+ MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ GEOMETRY_SHADER_INVOCATIONS = 0x887F
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_LUMINANCE_TYPE = 0x8C14
+ TEXTURE_INTENSITY_TYPE = 0x8C15
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ SAMPLE_SHADING = 0x8C36
+ MIN_SAMPLE_SHADING_VALUE = 0x8C37
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ ACTIVE_SUBROUTINES = 0x8DE5
+ ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+ MAX_SUBROUTINES = 0x8DE7
+ MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+ MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+ TRANSFORM_FEEDBACK = 0x8E22
+ TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+ TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+ TRANSFORM_FEEDBACK_BINDING = 0x8E25
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+ ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+ ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+ NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+ COMPATIBLE_SUBROUTINES = 0x8E4B
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+ MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+ MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+ FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+ MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+ MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+ MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+ MAX_VERTEX_STREAMS = 0x8E71
+ PATCH_VERTICES = 0x8E72
+ PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+ PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+ TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+ TESS_GEN_MODE = 0x8E76
+ TESS_GEN_SPACING = 0x8E77
+ TESS_GEN_VERTEX_ORDER = 0x8E78
+ TESS_GEN_POINT_MODE = 0x8E79
+ ISOLINES = 0x8E7A
+ FRACTIONAL_ODD = 0x8E7B
+ FRACTIONAL_EVEN = 0x8E7C
+ MAX_PATCH_VERTICES = 0x8E7D
+ MAX_TESS_GEN_LEVEL = 0x8E7E
+ MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+ MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+ MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+ MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+ MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+ MAX_TESS_PATCH_COMPONENTS = 0x8E84
+ MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+ MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+ TESS_EVALUATION_SHADER = 0x8E87
+ TESS_CONTROL_SHADER = 0x8E88
+ MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+ MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ DRAW_INDIRECT_BUFFER = 0x8F3F
+ DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+ DOUBLE_MAT2 = 0x8F46
+ DOUBLE_MAT3 = 0x8F47
+ DOUBLE_MAT4 = 0x8F48
+ DOUBLE_MAT2x3 = 0x8F49
+ DOUBLE_MAT2x4 = 0x8F4A
+ DOUBLE_MAT3x2 = 0x8F4B
+ DOUBLE_MAT3x4 = 0x8F4C
+ DOUBLE_MAT4x2 = 0x8F4D
+ DOUBLE_MAT4x3 = 0x8F4E
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ DOUBLE_VEC2 = 0x8FFC
+ DOUBLE_VEC3 = 0x8FFD
+ DOUBLE_VEC4 = 0x8FFE
+ TEXTURE_CUBE_MAP_ARRAY = 0x9009
+ TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+ PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
+ SAMPLER_CUBE_MAP_ARRAY = 0x900C
+ SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+ INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+ UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+ RGB10_A2UI = 0x906F
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+)
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl4_0compat_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl4_0compat_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl4_0compat_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl4_0compat_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl4_0compat_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl4_0compat_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl4_0compat_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl4_0compat_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl4_0compat_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl4_0compat_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl4_0compat_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_0compat_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl4_0compat_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl4_0compat_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl4_0compat_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl4_0compat_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl4_0compat_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl4_0compat_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl4_0compat_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl4_0compat_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl4_0compat_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl4_0compat_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl4_0compat_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl4_0compat_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl4_0compat_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl4_0compat_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_0compat_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl4_0compat_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl4_0compat_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl4_0compat_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl4_0compat_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl4_0compat_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl4_0compat_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl4_0compat_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl4_0compat_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl4_0compat_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl4_0compat_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl4_0compat_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl4_0compat_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl4_0compat_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl4_0compat_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl4_0compat_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl4_0compat_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl4_0compat_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl4_0compat_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl4_0compat_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl4_0compat_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl4_0compat_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl4_0compat_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl4_0compat_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl4_0compat_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl4_0compat_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl4_0compat_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl4_0compat_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl4_0compat_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl4_0compat_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl4_0compat_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl4_0compat_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl4_0compat_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl4_0compat_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_0compat_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_0compat_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_0compat_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl4_0compat_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl4_0compat_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl4_0compat_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl4_0compat_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl4_0compat_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl4_0compat_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl4_0compat_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl4_0compat_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl4_0compat_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl4_0compat_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl4_0compat_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl4_0compat_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl4_0compat_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_0compat_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl4_0compat_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl4_0compat_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl4_0compat_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_0compat_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_0compat_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_0compat_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl4_0compat_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl4_0compat_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_0compat_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_0compat_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl4_0compat_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl4_0compat_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl4_0compat_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl4_0compat_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl4_0compat_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl4_0compat_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl4_0compat_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_0compat_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl4_0compat_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl4_0compat_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl4_0compat_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl4_0compat_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_0compat_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl4_0compat_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_0compat_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_0compat_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_0compat_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_0compat_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_0compat_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl4_0compat_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_0compat_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_0compat_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_0compat_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_0compat_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_0compat_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl4_0compat_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl4_0compat_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl4_0compat_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl4_0compat_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl4_0compat_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl4_0compat_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_0compat_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl4_0compat_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_0compat_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl4_0compat_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl4_0compat_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_0compat_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl4_0compat_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl4_0compat_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl4_0compat_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl4_0compat_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl4_0compat_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl4_0compat_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl4_0compat_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl4_0compat_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl4_0compat_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl4_0compat_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl4_0compat_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl4_0compat_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_0compat_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl4_0compat_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl4_0compat_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_0compat_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl4_0compat_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_0compat_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_0compat_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl4_0compat_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl4_0compat_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_0compat_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl4_0compat_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl4_0compat_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl4_0compat_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl4_0compat_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_0compat_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_0compat_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl4_0compat_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl4_0compat_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl4_0compat_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl4_0compat_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl4_0compat_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_0compat_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_0compat_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl4_0compat_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl4_0compat_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl4_0compat_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_0compat_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_0compat_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_0compat_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_0compat_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl4_0compat_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_0compat_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl4_0compat_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl4_0compat_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl4_0compat_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl4_0compat_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl4_0compat_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl4_0compat_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_0compat_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl4_0compat_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl4_0compat_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl4_0compat_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl4_0compat_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl4_0compat_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl4_0compat_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl4_0compat_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl4_0compat_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl4_0compat_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl4_0compat_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl4_0compat_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl4_0compat_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl4_0compat_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl4_0compat_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl4_0compat_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl4_0compat_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_0compat_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl4_0compat_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl4_0compat_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl4_0compat_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_0compat_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl4_0compat_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl4_0compat_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl4_0compat_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl4_0compat_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl4_0compat_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl4_0compat_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl4_0compat_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl4_0compat_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl4_0compat_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_0compat_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl4_0compat_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl4_0compat_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_0compat_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_0compat_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_0compat_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_0compat_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_0compat_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_0compat_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_0compat_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_0compat_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_0compat_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_0compat_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_0compat_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl4_0compat_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_0compat_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_0compat_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0compat_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0compat_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_0compat_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_0compat_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_0compat_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_0compat_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_0compat_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_0compat_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_0compat_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_0compat_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0compat_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0compat_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0compat_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0compat_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0compat_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0compat_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0compat_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0compat_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_0compat_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl4_0compat_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_0compat_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl4_0compat_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_0compat_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl4_0compat_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl4_0compat_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl4_0compat_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl4_0compat_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_0compat_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl4_0compat_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_0compat_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl4_0compat_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl4_0compat_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_0compat_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl4_0compat_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl4_0compat_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl4_0compat_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl4_0compat_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl4_0compat_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_0compat_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl4_0compat_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl4_0compat_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryIndexediv.xml
+func (gl *GL) GetQueryIndexediv(target glbase.Enum, index uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetQueryIndexediv(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQueryIndexed.xml
+func (gl *GL) EndQueryIndexed(target glbase.Enum, index uint32) {
+ C.gl4_0compat_glEndQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
+func (gl *GL) BeginQueryIndexed(target glbase.Enum, index, id uint32) {
+ C.gl4_0compat_glBeginQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStream.xml
+func (gl *GL) DrawTransformFeedbackStream(mode glbase.Enum, id, stream uint32) {
+ C.gl4_0compat_glDrawTransformFeedbackStream(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedback.xml
+func (gl *GL) DrawTransformFeedback(mode glbase.Enum, id uint32) {
+ C.gl4_0compat_glDrawTransformFeedback(gl.funcs, C.GLenum(mode), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResumeTransformFeedback.xml
+func (gl *GL) ResumeTransformFeedback() {
+ C.gl4_0compat_glResumeTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPauseTransformFeedback.xml
+func (gl *GL) PauseTransformFeedback() {
+ C.gl4_0compat_glPauseTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTransformFeedback.xml
+func (gl *GL) IsTransformFeedback(id uint32) bool {
+ glresult := C.gl4_0compat_glIsTransformFeedback(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenTransformFeedbacks.xml
+func (gl *GL) GenTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_0compat_glGenTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTransformFeedbacks.xml
+func (gl *GL) DeleteTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_0compat_glDeleteTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTransformFeedback.xml
+func (gl *GL) BindTransformFeedback(target glbase.Enum, id uint32) {
+ C.gl4_0compat_glBindTransformFeedback(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameterfv.xml
+func (gl *GL) PatchParameterfv(pname glbase.Enum, values []float32) {
+ C.gl4_0compat_glPatchParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameteri.xml
+func (gl *GL) PatchParameteri(pname glbase.Enum, value int32) {
+ C.gl4_0compat_glPatchParameteri(gl.funcs, C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramStageiv.xml
+func (gl *GL) GetProgramStageiv(program glbase.Program, shadertype, pname glbase.Enum, values []int32) {
+ C.gl4_0compat_glGetProgramStageiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformSubroutineuiv.xml
+func (gl *GL) GetUniformSubroutineuiv(shadertype glbase.Enum, location glbase.Uniform, params []uint32) {
+ C.gl4_0compat_glGetUniformSubroutineuiv(gl.funcs, C.GLenum(shadertype), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformSubroutinesuiv.xml
+func (gl *GL) UniformSubroutinesuiv(shadertype glbase.Enum, count int, value []uint32) {
+ C.gl4_0compat_glUniformSubroutinesuiv(gl.funcs, C.GLenum(shadertype), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineName.xml
+func (gl *GL) GetActiveSubroutineName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_0compat_glGetActiveSubroutineName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformName.xml
+func (gl *GL) GetActiveSubroutineUniformName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_0compat_glGetActiveSubroutineUniformName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformiv.xml
+func (gl *GL) GetActiveSubroutineUniformiv(program glbase.Program, shadertype glbase.Enum, index uint32, pname glbase.Enum, values []int32) {
+ C.gl4_0compat_glGetActiveSubroutineUniformiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineIndex.xml
+func (gl *GL) GetSubroutineIndex(program glbase.Program, shadertype glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_0compat_glGetSubroutineIndex(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineUniformLocation.xml
+func (gl *GL) GetSubroutineUniformLocation(program glbase.Program, shadertype glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_0compat_glGetSubroutineUniformLocation(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformdv.xml
+func (gl *GL) GetUniformdv(program glbase.Program, location glbase.Uniform, params []float64) {
+ C.gl4_0compat_glGetUniformdv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x3dv.xml
+func (gl *GL) UniformMatrix4x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0compat_glUniformMatrix4x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x2dv.xml
+func (gl *GL) UniformMatrix4x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0compat_glUniformMatrix4x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x4dv.xml
+func (gl *GL) UniformMatrix3x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0compat_glUniformMatrix3x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x2dv.xml
+func (gl *GL) UniformMatrix3x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0compat_glUniformMatrix3x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x4dv.xml
+func (gl *GL) UniformMatrix2x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0compat_glUniformMatrix2x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x3dv.xml
+func (gl *GL) UniformMatrix2x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0compat_glUniformMatrix2x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4dv.xml
+func (gl *GL) UniformMatrix4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0compat_glUniformMatrix4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3dv.xml
+func (gl *GL) UniformMatrix3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0compat_glUniformMatrix3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2dv.xml
+func (gl *GL) UniformMatrix2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0compat_glUniformMatrix2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4dv.xml
+func (gl *GL) Uniform4dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_0compat_glUniform4dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3dv.xml
+func (gl *GL) Uniform3dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_0compat_glUniform3dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2dv.xml
+func (gl *GL) Uniform2dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_0compat_glUniform2dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1dv.xml
+func (gl *GL) Uniform1dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_0compat_glUniform1dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4d.xml
+func (gl *GL) Uniform4d(location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_0compat_glUniform4d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3d.xml
+func (gl *GL) Uniform3d(location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_0compat_glUniform3d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2d.xml
+func (gl *GL) Uniform2d(location glbase.Uniform, v0, v1 float64) {
+ C.gl4_0compat_glUniform2d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1d.xml
+func (gl *GL) Uniform1d(location glbase.Uniform, v0 float64) {
+ C.gl4_0compat_glUniform1d(gl.funcs, C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsIndirect.xml
+func (gl *GL) DrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysIndirect.xml
+func (gl *GL) DrawArraysIndirect(mode glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparatei.xml
+func (gl *GL) BlendFuncSeparatei(buf uint32, srcRGB, dstRGB, srcAlpha, dstAlpha glbase.Enum) {
+ C.gl4_0compat_glBlendFuncSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(srcRGB), C.GLenum(dstRGB), C.GLenum(srcAlpha), C.GLenum(dstAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunci.xml
+func (gl *GL) BlendFunci(buf uint32, src, dst glbase.Enum) {
+ C.gl4_0compat_glBlendFunci(gl.funcs, C.GLuint(buf), C.GLenum(src), C.GLenum(dst))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparatei.xml
+func (gl *GL) BlendEquationSeparatei(buf uint32, modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_0compat_glBlendEquationSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationi.xml
+func (gl *GL) BlendEquationi(buf uint32, mode glbase.Enum) {
+ C.gl4_0compat_glBlendEquationi(gl.funcs, C.GLuint(buf), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinSampleShading.xml
+func (gl *GL) MinSampleShading(value float32) {
+ C.gl4_0compat_glMinSampleShading(gl.funcs, C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl4_0compat_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl4_0compat_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl4_0compat_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl4_0compat_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl4_0compat_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl4_0compat_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl4_0compat_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl4_0compat_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl4_0compat_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl4_0compat_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl4_0compat_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl4_0compat_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl4_0compat_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl4_0compat_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl4_0compat_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl4_0compat_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl4_0compat_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl4_0compat_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl4_0compat_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl4_0compat_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl4_0compat_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl4_0compat_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl4_0compat_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl4_0compat_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl4_0compat_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl4_0compat_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl4_0compat_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl4_0compat_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl4_0compat_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl4_0compat_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl4_0compat_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl4_0compat_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl4_0compat_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl4_0compat_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl4_0compat_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl4_0compat_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl4_0compat_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl4_0compat_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl4_0compat_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl4_0compat_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl4_0compat_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl4_0compat_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl4_0compat_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl4_0compat_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl4_0compat_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl4_0compat_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl4_0compat_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl4_0compat_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl4_0compat_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl4_0compat_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl4_0compat_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl4_0compat_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl4_0compat_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl4_0compat_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl4_0compat_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl4_0compat_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl4_0compat_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl4_0compat_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl4_0compat_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl4_0compat_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl4_0compat_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl4_0compat_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl4_0compat_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl4_0compat_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl4_0compat_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl4_0compat_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl4_0compat_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl4_0compat_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl4_0compat_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl4_0compat_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl4_0compat_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl4_0compat_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl4_0compat_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl4_0compat_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl4_0compat_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl4_0compat_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl4_0compat_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl4_0compat_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl4_0compat_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl4_0compat_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl4_0compat_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl4_0compat_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl4_0compat_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl4_0compat_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl4_0compat_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl4_0compat_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl4_0compat_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl4_0compat_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl4_0compat_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl4_0compat_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl4_0compat_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl4_0compat_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl4_0compat_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl4_0compat_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl4_0compat_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl4_0compat_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl4_0compat_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl4_0compat_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl4_0compat_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl4_0compat_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl4_0compat_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl4_0compat_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl4_0compat_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl4_0compat_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl4_0compat_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl4_0compat_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl4_0compat_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl4_0compat_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl4_0compat_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl4_0compat_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl4_0compat_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl4_0compat_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl4_0compat_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl4_0compat_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl4_0compat_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl4_0compat_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl4_0compat_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl4_0compat_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl4_0compat_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl4_0compat_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl4_0compat_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl4_0compat_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl4_0compat_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl4_0compat_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl4_0compat_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl4_0compat_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl4_0compat_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl4_0compat_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl4_0compat_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl4_0compat_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl4_0compat_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl4_0compat_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl4_0compat_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl4_0compat_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl4_0compat_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl4_0compat_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl4_0compat_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl4_0compat_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl4_0compat_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl4_0compat_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl4_0compat_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl4_0compat_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl4_0compat_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl4_0compat_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl4_0compat_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl4_0compat_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl4_0compat_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl4_0compat_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl4_0compat_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl4_0compat_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl4_0compat_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl4_0compat_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl4_0compat_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl4_0compat_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl4_0compat_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl4_0compat_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl4_0compat_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl4_0compat_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl4_0compat_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl4_0compat_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl4_0compat_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl4_0compat_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl4_0compat_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl4_0compat_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl4_0compat_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl4_0compat_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl4_0compat_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl4_0compat_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl4_0compat_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl4_0compat_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl4_0compat_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl4_0compat_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl4_0compat_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl4_0compat_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl4_0compat_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl4_0compat_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl4_0compat_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl4_0compat_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl4_0compat_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl4_0compat_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl4_0compat_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl4_0compat_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl4_0compat_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl4_0compat_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl4_0compat_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl4_0compat_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl4_0compat_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl4_0compat_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl4_0compat_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl4_0compat_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl4_0compat_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl4_0compat_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl4_0compat_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl4_0compat_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl4_0compat_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl4_0compat_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl4_0compat_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl4_0compat_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl4_0compat_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl4_0compat_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl4_0compat_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl4_0compat_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl4_0compat_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl4_0compat_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl4_0compat_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0compat_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0compat_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl4_0compat_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl4_0compat_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl4_0compat_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl4_0compat_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl4_0compat_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl4_0compat_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl4_0compat_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl4_0compat_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl4_0compat_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl4_0compat_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl4_0compat_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl4_0compat_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl4_0compat_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl4_0compat_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl4_0compat_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl4_0compat_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl4_0compat_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl4_0compat_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl4_0compat_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl4_0compat_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl4_0compat_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl4_0compat_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl4_0compat_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl4_0compat_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl4_0compat_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl4_0compat_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl4_0compat_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl4_0compat_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl4_0compat_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl4_0compat_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl4_0compat_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl4_0compat_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl4_0compat_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl4_0compat_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl4_0compat_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl4_0compat_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl4_0compat_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl4_0compat_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl4_0compat_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl4_0compat_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl4_0compat_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl4_0compat_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl4_0compat_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl4_0compat_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl4_0compat_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0compat_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl4_0compat_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl4_0compat_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl4_0compat_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl4_0compat_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4usv.xml
+func (gl *GL) VertexAttrib4usv(index glbase.Attrib, v []uint16) {
+ C.gl4_0compat_glVertexAttrib4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4uiv.xml
+func (gl *GL) VertexAttrib4uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_0compat_glVertexAttrib4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4ubv.xml
+func (gl *GL) VertexAttrib4ubv(index glbase.Attrib, v []uint8) {
+ C.gl4_0compat_glVertexAttrib4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4sv.xml
+func (gl *GL) VertexAttrib4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4s.xml
+func (gl *GL) VertexAttrib4s(index glbase.Attrib, x, y, z, w int16) {
+ C.gl4_0compat_glVertexAttrib4s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4iv.xml
+func (gl *GL) VertexAttrib4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gl4_0compat_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4dv.xml
+func (gl *GL) VertexAttrib4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4d.xml
+func (gl *GL) VertexAttrib4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_0compat_glVertexAttrib4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4bv.xml
+func (gl *GL) VertexAttrib4bv(index glbase.Attrib, v []byte) {
+ C.gl4_0compat_glVertexAttrib4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nusv.xml
+func (gl *GL) VertexAttrib4Nusv(index glbase.Attrib, v []uint16) {
+ C.gl4_0compat_glVertexAttrib4Nusv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nuiv.xml
+func (gl *GL) VertexAttrib4Nuiv(index glbase.Attrib, v []uint32) {
+ C.gl4_0compat_glVertexAttrib4Nuiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nubv.xml
+func (gl *GL) VertexAttrib4Nubv(index glbase.Attrib, v []uint8) {
+ C.gl4_0compat_glVertexAttrib4Nubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nub.xml
+func (gl *GL) VertexAttrib4Nub(index glbase.Attrib, x, y, z, w uint8) {
+ C.gl4_0compat_glVertexAttrib4Nub(gl.funcs, C.GLuint(index), C.GLubyte(x), C.GLubyte(y), C.GLubyte(z), C.GLubyte(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nsv.xml
+func (gl *GL) VertexAttrib4Nsv(index glbase.Attrib, v []int16) {
+ C.gl4_0compat_glVertexAttrib4Nsv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Niv.xml
+func (gl *GL) VertexAttrib4Niv(index glbase.Attrib, v []int32) {
+ C.gl4_0compat_glVertexAttrib4Niv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nbv.xml
+func (gl *GL) VertexAttrib4Nbv(index glbase.Attrib, v []byte) {
+ C.gl4_0compat_glVertexAttrib4Nbv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3sv.xml
+func (gl *GL) VertexAttrib3sv(index glbase.Attrib, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib3sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3s.xml
+func (gl *GL) VertexAttrib3s(index glbase.Attrib, x, y, z int16) {
+ C.gl4_0compat_glVertexAttrib3s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gl4_0compat_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3dv.xml
+func (gl *GL) VertexAttrib3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3d.xml
+func (gl *GL) VertexAttrib3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_0compat_glVertexAttrib3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2sv.xml
+func (gl *GL) VertexAttrib2sv(index glbase.Attrib, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib2sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2s.xml
+func (gl *GL) VertexAttrib2s(index glbase.Attrib, x, y int16) {
+ C.gl4_0compat_glVertexAttrib2s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gl4_0compat_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2dv.xml
+func (gl *GL) VertexAttrib2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttrib2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2d.xml
+func (gl *GL) VertexAttrib2d(index glbase.Attrib, x, y float64) {
+ C.gl4_0compat_glVertexAttrib2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1sv.xml
+func (gl *GL) VertexAttrib1sv(index glbase.Attrib, v []int16) {
+ C.gl4_0compat_glVertexAttrib1sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1s.xml
+func (gl *GL) VertexAttrib1s(index glbase.Attrib, x int16) {
+ C.gl4_0compat_glVertexAttrib1s(gl.funcs, C.GLuint(index), C.GLshort(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, v []float32) {
+ C.gl4_0compat_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gl4_0compat_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1dv.xml
+func (gl *GL) VertexAttrib1dv(index glbase.Attrib, v []float64) {
+ C.gl4_0compat_glVertexAttrib1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1d.xml
+func (gl *GL) VertexAttrib1d(index glbase.Attrib, x float64) {
+ C.gl4_0compat_glVertexAttrib1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4usv.xml
+func (gl *GL) VertexAttribI4usv(index glbase.Attrib, v []uint16) {
+ C.gl4_0compat_glVertexAttribI4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4ubv.xml
+func (gl *GL) VertexAttribI4ubv(index glbase.Attrib, v []uint8) {
+ C.gl4_0compat_glVertexAttribI4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4sv.xml
+func (gl *GL) VertexAttribI4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttribI4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4bv.xml
+func (gl *GL) VertexAttribI4bv(index glbase.Attrib, v []byte) {
+ C.gl4_0compat_glVertexAttribI4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4uiv.xml
+func (gl *GL) VertexAttribI4uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_0compat_glVertexAttribI4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3uiv.xml
+func (gl *GL) VertexAttribI3uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_0compat_glVertexAttribI3uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2uiv.xml
+func (gl *GL) VertexAttribI2uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_0compat_glVertexAttribI2uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1uiv.xml
+func (gl *GL) VertexAttribI1uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_0compat_glVertexAttribI1uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4iv.xml
+func (gl *GL) VertexAttribI4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttribI4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3iv.xml
+func (gl *GL) VertexAttribI3iv(index glbase.Attrib, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttribI3iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2iv.xml
+func (gl *GL) VertexAttribI2iv(index glbase.Attrib, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_0compat_glVertexAttribI2iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1iv.xml
+func (gl *GL) VertexAttribI1iv(index glbase.Attrib, v []int32) {
+ C.gl4_0compat_glVertexAttribI1iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4ui.xml
+func (gl *GL) VertexAttribI4ui(index glbase.Attrib, x, y, z, w uint32) {
+ C.gl4_0compat_glVertexAttribI4ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z), C.GLuint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3ui.xml
+func (gl *GL) VertexAttribI3ui(index glbase.Attrib, x, y, z uint32) {
+ C.gl4_0compat_glVertexAttribI3ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2ui.xml
+func (gl *GL) VertexAttribI2ui(index glbase.Attrib, x, y uint32) {
+ C.gl4_0compat_glVertexAttribI2ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1ui.xml
+func (gl *GL) VertexAttribI1ui(index glbase.Attrib, x uint32) {
+ C.gl4_0compat_glVertexAttribI1ui(gl.funcs, C.GLuint(index), C.GLuint(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4i.xml
+func (gl *GL) VertexAttribI4i(index glbase.Attrib, x, y, z, w int) {
+ C.gl4_0compat_glVertexAttribI4i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3i.xml
+func (gl *GL) VertexAttribI3i(index glbase.Attrib, x, y, z int) {
+ C.gl4_0compat_glVertexAttribI3i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2i.xml
+func (gl *GL) VertexAttribI2i(index glbase.Attrib, x, y int) {
+ C.gl4_0compat_glVertexAttribI2i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1i.xml
+func (gl *GL) VertexAttribI1i(index glbase.Attrib, x int) {
+ C.gl4_0compat_glVertexAttribI1i(gl.funcs, C.GLuint(index), C.GLint(x))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/funcs.cpp
new file mode 100644
index 000000000..1be157d64
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/funcs.cpp
@@ -0,0 +1,2154 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_4_0_core.h>
+
+#include "funcs.h"
+
+void *gl4_0core_funcs() {
+ QOpenGLFunctions_4_0_Core* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_4_0_Core>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl4_0core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl4_0core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl4_0core_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl4_0core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl4_0core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl4_0core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl4_0core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl4_0core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl4_0core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl4_0core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl4_0core_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl4_0core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl4_0core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl4_0core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl4_0core_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl4_0core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl4_0core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl4_0core_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl4_0core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl4_0core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl4_0core_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl4_0core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl4_0core_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl4_0core_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl4_0core_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl4_0core_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl4_0core_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl4_0core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl4_0core_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl4_0core_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl4_0core_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl4_0core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl4_0core_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl4_0core_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl4_0core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl4_0core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl4_0core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl4_0core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl4_0core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl4_0core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl4_0core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl4_0core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl4_0core_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl4_0core_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl4_0core_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl4_0core_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl4_0core_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl4_0core_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl4_0core_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl4_0core_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl4_0core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl4_0core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl4_0core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl4_0core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl4_0core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl4_0core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl4_0core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl4_0core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl4_0core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl4_0core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl4_0core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl4_0core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl4_0core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl4_0core_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_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl4_0core_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_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl4_0core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl4_0core_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl4_0core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl4_0core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl4_0core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl4_0core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl4_0core_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_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl4_0core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl4_0core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl4_0core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl4_0core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl4_0core_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl4_0core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl4_0core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl4_0core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl4_0core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl4_0core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl4_0core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl4_0core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl4_0core_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl4_0core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl4_0core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl4_0core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl4_0core_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl4_0core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl4_0core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl4_0core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl4_0core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl4_0core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl4_0core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl4_0core_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl4_0core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl4_0core_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl4_0core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl4_0core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl4_0core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl4_0core_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl4_0core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl4_0core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl4_0core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl4_0core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl4_0core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl4_0core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl4_0core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl4_0core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl4_0core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl4_0core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl4_0core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl4_0core_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl4_0core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl4_0core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl4_0core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl4_0core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl4_0core_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl4_0core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl4_0core_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl4_0core_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl4_0core_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl4_0core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl4_0core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl4_0core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl4_0core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl4_0core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl4_0core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl4_0core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl4_0core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl4_0core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl4_0core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl4_0core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl4_0core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl4_0core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl4_0core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_0core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_0core_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl4_0core_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl4_0core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl4_0core_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl4_0core_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl4_0core_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl4_0core_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl4_0core_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl4_0core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl4_0core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl4_0core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl4_0core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl4_0core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl4_0core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl4_0core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl4_0core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl4_0core_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl4_0core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl4_0core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl4_0core_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl4_0core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl4_0core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl4_0core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl4_0core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl4_0core_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl4_0core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl4_0core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl4_0core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl4_0core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl4_0core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl4_0core_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl4_0core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl4_0core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl4_0core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl4_0core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl4_0core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl4_0core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl4_0core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl4_0core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl4_0core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl4_0core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl4_0core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl4_0core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl4_0core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl4_0core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl4_0core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl4_0core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl4_0core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl4_0core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl4_0core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl4_0core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl4_0core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl4_0core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl4_0core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl4_0core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl4_0core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl4_0core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl4_0core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl4_0core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl4_0core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl4_0core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl4_0core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl4_0core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_0core_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl4_0core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl4_0core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl4_0core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_0core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl4_0core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl4_0core_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl4_0core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl4_0core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl4_0core_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl4_0core_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl4_0core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl4_0core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl4_0core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl4_0core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl4_0core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl4_0core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl4_0core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl4_0core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl4_0core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl4_0core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl4_0core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl4_0core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl4_0core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl4_0core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl4_0core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl4_0core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl4_0core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_0core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_0core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl4_0core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl4_0core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl4_0core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl4_0core_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl4_0core_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl4_0core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl4_0core_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl4_0core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl4_0core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl4_0core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl4_0core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl4_0core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl4_0core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl4_0core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl4_0core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl4_0core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl4_0core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl4_0core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl4_0core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl4_0core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl4_0core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl4_0core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl4_0core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl4_0core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl4_0core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl4_0core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl4_0core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl4_0core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl4_0core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl4_0core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl4_0core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl4_0core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl4_0core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl4_0core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl4_0core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl4_0core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl4_0core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl4_0core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl4_0core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl4_0core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl4_0core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl4_0core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl4_0core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl4_0core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl4_0core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl4_0core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl4_0core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl4_0core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl4_0core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl4_0core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl4_0core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl4_0core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl4_0core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl4_0core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl4_0core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl4_0core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl4_0core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl4_0core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl4_0core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl4_0core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl4_0core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl4_0core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl4_0core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl4_0core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl4_0core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl4_0core_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl4_0core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl4_0core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl4_0core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl4_0core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl4_0core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
+void gl4_0core_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryIndexediv(target, index, pname, params);
+}
+
+void gl4_0core_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glEndQueryIndexed(target, index);
+}
+
+void gl4_0core_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBeginQueryIndexed(target, index, id);
+}
+
+void gl4_0core_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStream(mode, id, stream);
+}
+
+void gl4_0core_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedback(mode, id);
+}
+
+void gl4_0core_glResumeTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glResumeTransformFeedback();
+}
+
+void gl4_0core_glPauseTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPauseTransformFeedback();
+}
+
+GLboolean gl4_0core_glIsTransformFeedback(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glIsTransformFeedback(id);
+}
+
+void gl4_0core_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGenTransformFeedbacks(n, ids);
+}
+
+void gl4_0core_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTransformFeedbacks(n, ids);
+}
+
+void gl4_0core_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBindTransformFeedback(target, id);
+}
+
+void gl4_0core_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPatchParameterfv(pname, values);
+}
+
+void gl4_0core_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glPatchParameteri(pname, value);
+}
+
+void gl4_0core_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramStageiv(program, shadertype, pname, values);
+}
+
+void gl4_0core_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformSubroutineuiv(shadertype, location, params);
+}
+
+void gl4_0core_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformSubroutinesuiv(shadertype, count, value);
+}
+
+void gl4_0core_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_0core_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_0core_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
+}
+
+GLuint gl4_0core_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineIndex(program, shadertype, name);
+}
+
+GLint gl4_0core_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineUniformLocation(program, shadertype, name);
+}
+
+void gl4_0core_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformdv(program, location, params);
+}
+
+void gl4_0core_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3dv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2dv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4dv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2dv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4dv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3dv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4dv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3dv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2dv(location, count, transpose, value);
+}
+
+void gl4_0core_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform4dv(location, count, value);
+}
+
+void gl4_0core_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform3dv(location, count, value);
+}
+
+void gl4_0core_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform2dv(location, count, value);
+}
+
+void gl4_0core_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform1dv(location, count, value);
+}
+
+void gl4_0core_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform4d(location, v0, v1, v2, v3);
+}
+
+void gl4_0core_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform3d(location, v0, v1, v2);
+}
+
+void gl4_0core_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform2d(location, v0, v1);
+}
+
+void gl4_0core_glUniform1d(void *_glfuncs, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glUniform1d(location, v0);
+}
+
+void gl4_0core_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsIndirect(mode, gltype, indirect);
+}
+
+void gl4_0core_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysIndirect(mode, indirect);
+}
+
+void gl4_0core_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void gl4_0core_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunci(buf, src, dst);
+}
+
+void gl4_0core_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
+}
+
+void gl4_0core_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationi(buf, mode);
+}
+
+void gl4_0core_glMinSampleShading(void *_glfuncs, GLfloat value)
+{
+ QOpenGLFunctions_4_0_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_0_Core*>(_glfuncs);
+ _qglfuncs->glMinSampleShading(value);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/funcs.h
new file mode 100644
index 000000000..55af051dc
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/funcs.h
@@ -0,0 +1,398 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl4_0core_funcs();
+
+void gl4_0core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_0core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl4_0core_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl4_0core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl4_0core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl4_0core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_0core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_0core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl4_0core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl4_0core_glGetError(void *_glfuncs);
+void gl4_0core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl4_0core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl4_0core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_0core_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl4_0core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl4_0core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_0core_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl4_0core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl4_0core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_0core_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl4_0core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl4_0core_glFlush(void *_glfuncs);
+void gl4_0core_glFinish(void *_glfuncs);
+void gl4_0core_glEnable(void *_glfuncs, GLenum cap);
+void gl4_0core_glDisable(void *_glfuncs, GLenum cap);
+void gl4_0core_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl4_0core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl4_0core_glStencilMask(void *_glfuncs, GLuint mask);
+void gl4_0core_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl4_0core_glClearStencil(void *_glfuncs, GLint s);
+void gl4_0core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_0core_glClear(void *_glfuncs, GLbitfield mask);
+void gl4_0core_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl4_0core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_0core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_0core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_0core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_0core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_0core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_0core_glPointSize(void *_glfuncs, GLfloat size);
+void gl4_0core_glLineWidth(void *_glfuncs, GLfloat width);
+void gl4_0core_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl4_0core_glFrontFace(void *_glfuncs, GLenum mode);
+void gl4_0core_glCullFace(void *_glfuncs, GLenum mode);
+void gl4_0core_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl4_0core_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl4_0core_glIsTexture(void *_glfuncs, GLuint texture);
+void gl4_0core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl4_0core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl4_0core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl4_0core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_0core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl4_0core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl4_0core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl4_0core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl4_0core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_0core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl4_0core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_0core_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);
+void gl4_0core_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_0core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_0core_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl4_0core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_0core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl4_0core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_0core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_0core_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);
+void gl4_0core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_0core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_0core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_0core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl4_0core_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_0core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_0core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl4_0core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_0core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_0core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl4_0core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl4_0core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl4_0core_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl4_0core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl4_0core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl4_0core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl4_0core_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl4_0core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl4_0core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl4_0core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl4_0core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl4_0core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl4_0core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0core_glEndQuery(void *_glfuncs, GLenum target);
+void gl4_0core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl4_0core_glIsQuery(void *_glfuncs, GLuint id);
+void gl4_0core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_0core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_0core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl4_0core_glValidateProgram(void *_glfuncs, GLuint program);
+void gl4_0core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_0core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_0core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_0core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_0core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_0core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_0core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_0core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_0core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_0core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_0core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl4_0core_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl4_0core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_0core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_0core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl4_0core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl4_0core_glUseProgram(void *_glfuncs, GLuint program);
+void gl4_0core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl4_0core_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl4_0core_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl4_0core_glIsProgram(void *_glfuncs, GLuint program);
+void gl4_0core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_0core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl4_0core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_0core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl4_0core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl4_0core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_0core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl4_0core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_0core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl4_0core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_0core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl4_0core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_0core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl4_0core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_0core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_0core_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_0core_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_0core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_0core_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl4_0core_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl4_0core_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl4_0core_glCreateProgram(void *_glfuncs);
+void gl4_0core_glCompileShader(void *_glfuncs, GLuint shader);
+void gl4_0core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl4_0core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_0core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl4_0core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_0core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl4_0core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl4_0core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl4_0core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_0core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl4_0core_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl4_0core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl4_0core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl4_0core_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl4_0core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl4_0core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl4_0core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_0core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl4_0core_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl4_0core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl4_0core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl4_0core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl4_0core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl4_0core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl4_0core_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl4_0core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl4_0core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl4_0core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl4_0core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl4_0core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_0core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl4_0core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl4_0core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl4_0core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl4_0core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl4_0core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl4_0core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl4_0core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl4_0core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl4_0core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_0core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl4_0core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_0core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_0core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_0core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_0core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_0core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_0core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_0core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl4_0core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl4_0core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_0core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl4_0core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl4_0core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl4_0core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_0core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_0core_glEndConditionalRender(void *_glfuncs);
+void gl4_0core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl4_0core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl4_0core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl4_0core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl4_0core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_0core_glEndTransformFeedback(void *_glfuncs);
+void gl4_0core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl4_0core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl4_0core_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_0core_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_0core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl4_0core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl4_0core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl4_0core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl4_0core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl4_0core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl4_0core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl4_0core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl4_0core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl4_0core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl4_0core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl4_0core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl4_0core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl4_0core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl4_0core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl4_0core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl4_0core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_0core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_0core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl4_0core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl4_0core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl4_0core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl4_0core_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl4_0core_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl4_0core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl4_0core_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl4_0core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl4_0core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_0core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_0core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl4_0core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl4_0core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl4_0core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_0core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_0core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_0core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_0core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_0core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_0core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_0core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_0core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_0core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_0core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_0core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_0core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_0core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_0core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_0core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_0core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_0core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_0core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_0core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_0core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_0core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_0core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_0core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_0core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_0core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_0core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_0core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_0core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_0core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_0core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl4_0core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl4_0core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl4_0core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl4_0core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl4_0core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_0core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_0core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl4_0core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_0core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl4_0core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl4_0core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_0core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl4_0core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl4_0core_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl4_0core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl4_0core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl4_0core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_0core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl4_0core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+void gl4_0core_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params);
+void gl4_0core_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index);
+void gl4_0core_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id);
+void gl4_0core_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream);
+void gl4_0core_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id);
+void gl4_0core_glResumeTransformFeedback(void *_glfuncs);
+void gl4_0core_glPauseTransformFeedback(void *_glfuncs);
+GLboolean gl4_0core_glIsTransformFeedback(void *_glfuncs, GLuint id);
+void gl4_0core_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_0core_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_0core_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id);
+void gl4_0core_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values);
+void gl4_0core_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value);
+void gl4_0core_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values);
+void gl4_0core_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params);
+void gl4_0core_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value);
+void gl4_0core_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_0core_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_0core_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
+GLuint gl4_0core_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+GLint gl4_0core_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+void gl4_0core_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params);
+void gl4_0core_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0core_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0core_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0core_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0core_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0core_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0core_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0core_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0core_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_0core_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_0core_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_0core_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_0core_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_0core_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_0core_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_0core_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1);
+void gl4_0core_glUniform1d(void *_glfuncs, GLint location, GLdouble v0);
+void gl4_0core_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect);
+void gl4_0core_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect);
+void gl4_0core_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+void gl4_0core_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst);
+void gl4_0core_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+void gl4_0core_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode);
+void gl4_0core_glMinSampleShading(void *_glfuncs, GLfloat value);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/gl.go
new file mode 100644
index 000000000..ddfef9318
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.0core/gl.go
@@ -0,0 +1,5815 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 4.0 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl4_0core_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 4.0 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 4.0 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ PATCHES = 0x000E
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+ MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ GEOMETRY_SHADER_INVOCATIONS = 0x887F
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ SAMPLE_SHADING = 0x8C36
+ MIN_SAMPLE_SHADING_VALUE = 0x8C37
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ ACTIVE_SUBROUTINES = 0x8DE5
+ ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+ MAX_SUBROUTINES = 0x8DE7
+ MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+ MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+ TRANSFORM_FEEDBACK = 0x8E22
+ TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+ TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+ TRANSFORM_FEEDBACK_BINDING = 0x8E25
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+ ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+ ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+ NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+ COMPATIBLE_SUBROUTINES = 0x8E4B
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+ MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+ MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+ FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+ MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+ MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+ MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+ MAX_VERTEX_STREAMS = 0x8E71
+ PATCH_VERTICES = 0x8E72
+ PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+ PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+ TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+ TESS_GEN_MODE = 0x8E76
+ TESS_GEN_SPACING = 0x8E77
+ TESS_GEN_VERTEX_ORDER = 0x8E78
+ TESS_GEN_POINT_MODE = 0x8E79
+ ISOLINES = 0x8E7A
+ FRACTIONAL_ODD = 0x8E7B
+ FRACTIONAL_EVEN = 0x8E7C
+ MAX_PATCH_VERTICES = 0x8E7D
+ MAX_TESS_GEN_LEVEL = 0x8E7E
+ MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+ MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+ MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+ MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+ MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+ MAX_TESS_PATCH_COMPONENTS = 0x8E84
+ MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+ MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+ TESS_EVALUATION_SHADER = 0x8E87
+ TESS_CONTROL_SHADER = 0x8E88
+ MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+ MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ DRAW_INDIRECT_BUFFER = 0x8F3F
+ DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+ DOUBLE_MAT2 = 0x8F46
+ DOUBLE_MAT3 = 0x8F47
+ DOUBLE_MAT4 = 0x8F48
+ DOUBLE_MAT2x3 = 0x8F49
+ DOUBLE_MAT2x4 = 0x8F4A
+ DOUBLE_MAT3x2 = 0x8F4B
+ DOUBLE_MAT3x4 = 0x8F4C
+ DOUBLE_MAT4x2 = 0x8F4D
+ DOUBLE_MAT4x3 = 0x8F4E
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ DOUBLE_VEC2 = 0x8FFC
+ DOUBLE_VEC3 = 0x8FFD
+ DOUBLE_VEC4 = 0x8FFE
+ TEXTURE_CUBE_MAP_ARRAY = 0x9009
+ TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+ PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
+ SAMPLER_CUBE_MAP_ARRAY = 0x900C
+ SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+ INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+ UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+ RGB10_A2UI = 0x906F
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+)
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl4_0core_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl4_0core_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl4_0core_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl4_0core_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0core_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl4_0core_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl4_0core_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl4_0core_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl4_0core_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl4_0core_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl4_0core_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl4_0core_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl4_0core_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl4_0core_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_0core_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl4_0core_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl4_0core_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl4_0core_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl4_0core_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl4_0core_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl4_0core_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl4_0core_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl4_0core_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl4_0core_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl4_0core_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl4_0core_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl4_0core_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl4_0core_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl4_0core_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_0core_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_0core_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl4_0core_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl4_0core_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl4_0core_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl4_0core_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl4_0core_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl4_0core_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl4_0core_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl4_0core_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl4_0core_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl4_0core_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl4_0core_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl4_0core_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl4_0core_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl4_0core_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl4_0core_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl4_0core_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl4_0core_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl4_0core_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl4_0core_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl4_0core_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl4_0core_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl4_0core_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl4_0core_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl4_0core_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl4_0core_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl4_0core_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl4_0core_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl4_0core_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl4_0core_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl4_0core_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl4_0core_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl4_0core_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl4_0core_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl4_0core_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl4_0core_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_0core_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_0core_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_0core_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl4_0core_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl4_0core_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl4_0core_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl4_0core_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl4_0core_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl4_0core_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl4_0core_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl4_0core_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl4_0core_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl4_0core_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl4_0core_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl4_0core_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl4_0core_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_0core_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl4_0core_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl4_0core_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl4_0core_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_0core_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_0core_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_0core_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl4_0core_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl4_0core_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_0core_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_0core_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl4_0core_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl4_0core_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl4_0core_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl4_0core_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl4_0core_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl4_0core_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl4_0core_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_0core_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl4_0core_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl4_0core_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl4_0core_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl4_0core_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_0core_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl4_0core_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_0core_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_0core_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_0core_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_0core_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_0core_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl4_0core_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_0core_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_0core_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_0core_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_0core_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_0core_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl4_0core_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl4_0core_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl4_0core_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl4_0core_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl4_0core_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl4_0core_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_0core_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl4_0core_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_0core_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl4_0core_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl4_0core_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_0core_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl4_0core_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl4_0core_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl4_0core_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl4_0core_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl4_0core_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl4_0core_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl4_0core_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl4_0core_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl4_0core_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl4_0core_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl4_0core_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl4_0core_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_0core_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl4_0core_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl4_0core_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_0core_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl4_0core_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_0core_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_0core_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl4_0core_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl4_0core_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_0core_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl4_0core_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl4_0core_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl4_0core_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl4_0core_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_0core_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_0core_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl4_0core_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl4_0core_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl4_0core_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl4_0core_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl4_0core_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_0core_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_0core_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl4_0core_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl4_0core_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl4_0core_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_0core_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_0core_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_0core_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_0core_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl4_0core_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_0core_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl4_0core_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl4_0core_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl4_0core_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl4_0core_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl4_0core_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl4_0core_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_0core_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl4_0core_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl4_0core_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl4_0core_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl4_0core_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl4_0core_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl4_0core_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl4_0core_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl4_0core_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl4_0core_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl4_0core_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl4_0core_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl4_0core_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl4_0core_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl4_0core_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl4_0core_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl4_0core_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_0core_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl4_0core_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl4_0core_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl4_0core_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_0core_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl4_0core_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl4_0core_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl4_0core_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl4_0core_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl4_0core_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl4_0core_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl4_0core_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl4_0core_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl4_0core_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_0core_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl4_0core_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl4_0core_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_0core_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_0core_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_0core_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_0core_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_0core_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_0core_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_0core_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_0core_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_0core_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_0core_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_0core_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl4_0core_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_0core_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_0core_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0core_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0core_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_0core_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_0core_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_0core_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_0core_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_0core_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_0core_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_0core_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_0core_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0core_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0core_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0core_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0core_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0core_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0core_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_0core_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_0core_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_0core_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl4_0core_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_0core_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl4_0core_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_0core_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl4_0core_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl4_0core_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl4_0core_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl4_0core_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_0core_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl4_0core_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl4_0core_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_0core_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl4_0core_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl4_0core_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_0core_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl4_0core_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl4_0core_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl4_0core_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl4_0core_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl4_0core_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_0core_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl4_0core_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl4_0core_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryIndexediv.xml
+func (gl *GL) GetQueryIndexediv(target glbase.Enum, index uint32, pname glbase.Enum, params []int32) {
+ C.gl4_0core_glGetQueryIndexediv(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQueryIndexed.xml
+func (gl *GL) EndQueryIndexed(target glbase.Enum, index uint32) {
+ C.gl4_0core_glEndQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
+func (gl *GL) BeginQueryIndexed(target glbase.Enum, index, id uint32) {
+ C.gl4_0core_glBeginQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStream.xml
+func (gl *GL) DrawTransformFeedbackStream(mode glbase.Enum, id, stream uint32) {
+ C.gl4_0core_glDrawTransformFeedbackStream(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedback.xml
+func (gl *GL) DrawTransformFeedback(mode glbase.Enum, id uint32) {
+ C.gl4_0core_glDrawTransformFeedback(gl.funcs, C.GLenum(mode), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResumeTransformFeedback.xml
+func (gl *GL) ResumeTransformFeedback() {
+ C.gl4_0core_glResumeTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPauseTransformFeedback.xml
+func (gl *GL) PauseTransformFeedback() {
+ C.gl4_0core_glPauseTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTransformFeedback.xml
+func (gl *GL) IsTransformFeedback(id uint32) bool {
+ glresult := C.gl4_0core_glIsTransformFeedback(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenTransformFeedbacks.xml
+func (gl *GL) GenTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_0core_glGenTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTransformFeedbacks.xml
+func (gl *GL) DeleteTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_0core_glDeleteTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTransformFeedback.xml
+func (gl *GL) BindTransformFeedback(target glbase.Enum, id uint32) {
+ C.gl4_0core_glBindTransformFeedback(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameterfv.xml
+func (gl *GL) PatchParameterfv(pname glbase.Enum, values []float32) {
+ C.gl4_0core_glPatchParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameteri.xml
+func (gl *GL) PatchParameteri(pname glbase.Enum, value int32) {
+ C.gl4_0core_glPatchParameteri(gl.funcs, C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramStageiv.xml
+func (gl *GL) GetProgramStageiv(program glbase.Program, shadertype, pname glbase.Enum, values []int32) {
+ C.gl4_0core_glGetProgramStageiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformSubroutineuiv.xml
+func (gl *GL) GetUniformSubroutineuiv(shadertype glbase.Enum, location glbase.Uniform, params []uint32) {
+ C.gl4_0core_glGetUniformSubroutineuiv(gl.funcs, C.GLenum(shadertype), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformSubroutinesuiv.xml
+func (gl *GL) UniformSubroutinesuiv(shadertype glbase.Enum, count int, value []uint32) {
+ C.gl4_0core_glUniformSubroutinesuiv(gl.funcs, C.GLenum(shadertype), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineName.xml
+func (gl *GL) GetActiveSubroutineName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_0core_glGetActiveSubroutineName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformName.xml
+func (gl *GL) GetActiveSubroutineUniformName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_0core_glGetActiveSubroutineUniformName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformiv.xml
+func (gl *GL) GetActiveSubroutineUniformiv(program glbase.Program, shadertype glbase.Enum, index uint32, pname glbase.Enum, values []int32) {
+ C.gl4_0core_glGetActiveSubroutineUniformiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineIndex.xml
+func (gl *GL) GetSubroutineIndex(program glbase.Program, shadertype glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_0core_glGetSubroutineIndex(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineUniformLocation.xml
+func (gl *GL) GetSubroutineUniformLocation(program glbase.Program, shadertype glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_0core_glGetSubroutineUniformLocation(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformdv.xml
+func (gl *GL) GetUniformdv(program glbase.Program, location glbase.Uniform, params []float64) {
+ C.gl4_0core_glGetUniformdv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x3dv.xml
+func (gl *GL) UniformMatrix4x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0core_glUniformMatrix4x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x2dv.xml
+func (gl *GL) UniformMatrix4x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0core_glUniformMatrix4x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x4dv.xml
+func (gl *GL) UniformMatrix3x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0core_glUniformMatrix3x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x2dv.xml
+func (gl *GL) UniformMatrix3x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0core_glUniformMatrix3x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x4dv.xml
+func (gl *GL) UniformMatrix2x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0core_glUniformMatrix2x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x3dv.xml
+func (gl *GL) UniformMatrix2x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0core_glUniformMatrix2x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4dv.xml
+func (gl *GL) UniformMatrix4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0core_glUniformMatrix4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3dv.xml
+func (gl *GL) UniformMatrix3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0core_glUniformMatrix3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2dv.xml
+func (gl *GL) UniformMatrix2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_0core_glUniformMatrix2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4dv.xml
+func (gl *GL) Uniform4dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_0core_glUniform4dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3dv.xml
+func (gl *GL) Uniform3dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_0core_glUniform3dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2dv.xml
+func (gl *GL) Uniform2dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_0core_glUniform2dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1dv.xml
+func (gl *GL) Uniform1dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_0core_glUniform1dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4d.xml
+func (gl *GL) Uniform4d(location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_0core_glUniform4d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3d.xml
+func (gl *GL) Uniform3d(location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_0core_glUniform3d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2d.xml
+func (gl *GL) Uniform2d(location glbase.Uniform, v0, v1 float64) {
+ C.gl4_0core_glUniform2d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1d.xml
+func (gl *GL) Uniform1d(location glbase.Uniform, v0 float64) {
+ C.gl4_0core_glUniform1d(gl.funcs, C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsIndirect.xml
+func (gl *GL) DrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysIndirect.xml
+func (gl *GL) DrawArraysIndirect(mode glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_0core_glDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparatei.xml
+func (gl *GL) BlendFuncSeparatei(buf uint32, srcRGB, dstRGB, srcAlpha, dstAlpha glbase.Enum) {
+ C.gl4_0core_glBlendFuncSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(srcRGB), C.GLenum(dstRGB), C.GLenum(srcAlpha), C.GLenum(dstAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunci.xml
+func (gl *GL) BlendFunci(buf uint32, src, dst glbase.Enum) {
+ C.gl4_0core_glBlendFunci(gl.funcs, C.GLuint(buf), C.GLenum(src), C.GLenum(dst))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparatei.xml
+func (gl *GL) BlendEquationSeparatei(buf uint32, modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_0core_glBlendEquationSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationi.xml
+func (gl *GL) BlendEquationi(buf uint32, mode glbase.Enum) {
+ C.gl4_0core_glBlendEquationi(gl.funcs, C.GLuint(buf), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinSampleShading.xml
+func (gl *GL) MinSampleShading(value float32) {
+ C.gl4_0core_glMinSampleShading(gl.funcs, C.GLfloat(value))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/funcs.cpp
new file mode 100644
index 000000000..70ec9e7f3
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/funcs.cpp
@@ -0,0 +1,5286 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_4_1_compatibility.h>
+
+#include "funcs.h"
+
+void *gl4_1compat_funcs() {
+ QOpenGLFunctions_4_1_Compatibility* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_4_1_Compatibility>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl4_1compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl4_1compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl4_1compat_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl4_1compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl4_1compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl4_1compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl4_1compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl4_1compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl4_1compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl4_1compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl4_1compat_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl4_1compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl4_1compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl4_1compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl4_1compat_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl4_1compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl4_1compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl4_1compat_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl4_1compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl4_1compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl4_1compat_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl4_1compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl4_1compat_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl4_1compat_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl4_1compat_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl4_1compat_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl4_1compat_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl4_1compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl4_1compat_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl4_1compat_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl4_1compat_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl4_1compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl4_1compat_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl4_1compat_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl4_1compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl4_1compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl4_1compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl4_1compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl4_1compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl4_1compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl4_1compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl4_1compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl4_1compat_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl4_1compat_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl4_1compat_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl4_1compat_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl4_1compat_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl4_1compat_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl4_1compat_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl4_1compat_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl4_1compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl4_1compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl4_1compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl4_1compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl4_1compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl4_1compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl4_1compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl4_1compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl4_1compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl4_1compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl4_1compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl4_1compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl4_1compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl4_1compat_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_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl4_1compat_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_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl4_1compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl4_1compat_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl4_1compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl4_1compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl4_1compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl4_1compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl4_1compat_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_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl4_1compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl4_1compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl4_1compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl4_1compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl4_1compat_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl4_1compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl4_1compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl4_1compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl4_1compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl4_1compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl4_1compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl4_1compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl4_1compat_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl4_1compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl4_1compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl4_1compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl4_1compat_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl4_1compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl4_1compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl4_1compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl4_1compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl4_1compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl4_1compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl4_1compat_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl4_1compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl4_1compat_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl4_1compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl4_1compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl4_1compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl4_1compat_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl4_1compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl4_1compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl4_1compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl4_1compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl4_1compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl4_1compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl4_1compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl4_1compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl4_1compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl4_1compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl4_1compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl4_1compat_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl4_1compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl4_1compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl4_1compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl4_1compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl4_1compat_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl4_1compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl4_1compat_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl4_1compat_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl4_1compat_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl4_1compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl4_1compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl4_1compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl4_1compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl4_1compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl4_1compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl4_1compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl4_1compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl4_1compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl4_1compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl4_1compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl4_1compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl4_1compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl4_1compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_1compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_1compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl4_1compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl4_1compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl4_1compat_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl4_1compat_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl4_1compat_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl4_1compat_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl4_1compat_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl4_1compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl4_1compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl4_1compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl4_1compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl4_1compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl4_1compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl4_1compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl4_1compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl4_1compat_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl4_1compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl4_1compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl4_1compat_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl4_1compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl4_1compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl4_1compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl4_1compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl4_1compat_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl4_1compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl4_1compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl4_1compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl4_1compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl4_1compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl4_1compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl4_1compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl4_1compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl4_1compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl4_1compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl4_1compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl4_1compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl4_1compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl4_1compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl4_1compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl4_1compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl4_1compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl4_1compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl4_1compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl4_1compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl4_1compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl4_1compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl4_1compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl4_1compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl4_1compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl4_1compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl4_1compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl4_1compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl4_1compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl4_1compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl4_1compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl4_1compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl4_1compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl4_1compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl4_1compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl4_1compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl4_1compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl4_1compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_1compat_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl4_1compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl4_1compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl4_1compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_1compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl4_1compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl4_1compat_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl4_1compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl4_1compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl4_1compat_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl4_1compat_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl4_1compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl4_1compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl4_1compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl4_1compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl4_1compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl4_1compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl4_1compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl4_1compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl4_1compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl4_1compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl4_1compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl4_1compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl4_1compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl4_1compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl4_1compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl4_1compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl4_1compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_1compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_1compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl4_1compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl4_1compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl4_1compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl4_1compat_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl4_1compat_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl4_1compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl4_1compat_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl4_1compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl4_1compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl4_1compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl4_1compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl4_1compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl4_1compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl4_1compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl4_1compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl4_1compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl4_1compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl4_1compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl4_1compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl4_1compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl4_1compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl4_1compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl4_1compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl4_1compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl4_1compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl4_1compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl4_1compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl4_1compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl4_1compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl4_1compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl4_1compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl4_1compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl4_1compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl4_1compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl4_1compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl4_1compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl4_1compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl4_1compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl4_1compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl4_1compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl4_1compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl4_1compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl4_1compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl4_1compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl4_1compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl4_1compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl4_1compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl4_1compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl4_1compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl4_1compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl4_1compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl4_1compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl4_1compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl4_1compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl4_1compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl4_1compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl4_1compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl4_1compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl4_1compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl4_1compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl4_1compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl4_1compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl4_1compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl4_1compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl4_1compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl4_1compat_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl4_1compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl4_1compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl4_1compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl4_1compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl4_1compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
+void gl4_1compat_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryIndexediv(target, index, pname, params);
+}
+
+void gl4_1compat_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQueryIndexed(target, index);
+}
+
+void gl4_1compat_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQueryIndexed(target, index, id);
+}
+
+void gl4_1compat_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStream(mode, id, stream);
+}
+
+void gl4_1compat_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedback(mode, id);
+}
+
+void gl4_1compat_glResumeTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glResumeTransformFeedback();
+}
+
+void gl4_1compat_glPauseTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPauseTransformFeedback();
+}
+
+GLboolean gl4_1compat_glIsTransformFeedback(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTransformFeedback(id);
+}
+
+void gl4_1compat_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTransformFeedbacks(n, ids);
+}
+
+void gl4_1compat_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTransformFeedbacks(n, ids);
+}
+
+void gl4_1compat_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTransformFeedback(target, id);
+}
+
+void gl4_1compat_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPatchParameterfv(pname, values);
+}
+
+void gl4_1compat_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPatchParameteri(pname, value);
+}
+
+void gl4_1compat_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramStageiv(program, shadertype, pname, values);
+}
+
+void gl4_1compat_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformSubroutineuiv(shadertype, location, params);
+}
+
+void gl4_1compat_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformSubroutinesuiv(shadertype, count, value);
+}
+
+void gl4_1compat_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_1compat_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_1compat_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
+}
+
+GLuint gl4_1compat_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineIndex(program, shadertype, name);
+}
+
+GLint gl4_1compat_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineUniformLocation(program, shadertype, name);
+}
+
+void gl4_1compat_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformdv(program, location, params);
+}
+
+void gl4_1compat_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3dv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2dv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4dv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2dv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4dv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3dv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4dv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3dv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2dv(location, count, transpose, value);
+}
+
+void gl4_1compat_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4dv(location, count, value);
+}
+
+void gl4_1compat_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3dv(location, count, value);
+}
+
+void gl4_1compat_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2dv(location, count, value);
+}
+
+void gl4_1compat_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1dv(location, count, value);
+}
+
+void gl4_1compat_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4d(location, v0, v1, v2, v3);
+}
+
+void gl4_1compat_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3d(location, v0, v1, v2);
+}
+
+void gl4_1compat_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2d(location, v0, v1);
+}
+
+void gl4_1compat_glUniform1d(void *_glfuncs, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1d(location, v0);
+}
+
+void gl4_1compat_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsIndirect(mode, gltype, indirect);
+}
+
+void gl4_1compat_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysIndirect(mode, indirect);
+}
+
+void gl4_1compat_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void gl4_1compat_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunci(buf, src, dst);
+}
+
+void gl4_1compat_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
+}
+
+void gl4_1compat_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationi(buf, mode);
+}
+
+void gl4_1compat_glMinSampleShading(void *_glfuncs, GLfloat value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinSampleShading(value);
+}
+
+void gl4_1compat_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetDoublei_v(target, index, data);
+}
+
+void gl4_1compat_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFloati_v(target, index, data);
+}
+
+void gl4_1compat_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRangeIndexed(index, n, f);
+}
+
+void gl4_1compat_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRangeArrayv(first, count, v);
+}
+
+void gl4_1compat_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissorIndexedv(index, v);
+}
+
+void gl4_1compat_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissorIndexed(index, left, bottom, width, height);
+}
+
+void gl4_1compat_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissorArrayv(first, count, v);
+}
+
+void gl4_1compat_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewportIndexedfv(index, v);
+}
+
+void gl4_1compat_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewportIndexedf(index, x, y, w, h);
+}
+
+void gl4_1compat_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewportArrayv(first, count, v);
+}
+
+void gl4_1compat_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribLdv(index, pname, params);
+}
+
+void gl4_1compat_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribLPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_1compat_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4dv(index, v);
+}
+
+void gl4_1compat_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3dv(index, v);
+}
+
+void gl4_1compat_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2dv(index, v);
+}
+
+void gl4_1compat_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1dv(index, v);
+}
+
+void gl4_1compat_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4d(index, x, y, z, w);
+}
+
+void gl4_1compat_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3d(index, x, y, z);
+}
+
+void gl4_1compat_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2d(index, x, y);
+}
+
+void gl4_1compat_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1d(index, x);
+}
+
+void gl4_1compat_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
+}
+
+void gl4_1compat_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glValidateProgramPipeline(pipeline);
+}
+
+void gl4_1compat_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3dv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4dv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2dv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4dv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2dv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3dv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3fv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4fv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2fv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4fv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2fv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3fv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4dv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3dv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2dv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4fv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3fv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2fv(program, location, count, transpose, value);
+}
+
+void gl4_1compat_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4uiv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4ui(program, location, v0, v1, v2, v3);
+}
+
+void gl4_1compat_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4dv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4d(program, location, v0, v1, v2, v3);
+}
+
+void gl4_1compat_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4fv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4f(program, location, v0, v1, v2, v3);
+}
+
+void gl4_1compat_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4iv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4i(program, location, v0, v1, v2, v3);
+}
+
+void gl4_1compat_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3uiv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3ui(program, location, v0, v1, v2);
+}
+
+void gl4_1compat_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3dv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3d(program, location, v0, v1, v2);
+}
+
+void gl4_1compat_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3fv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3f(program, location, v0, v1, v2);
+}
+
+void gl4_1compat_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3iv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3i(program, location, v0, v1, v2);
+}
+
+void gl4_1compat_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2uiv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2ui(program, location, v0, v1);
+}
+
+void gl4_1compat_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2dv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2d(program, location, v0, v1);
+}
+
+void gl4_1compat_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2fv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2f(program, location, v0, v1);
+}
+
+void gl4_1compat_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2iv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2i(program, location, v0, v1);
+}
+
+void gl4_1compat_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1uiv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1ui(program, location, v0);
+}
+
+void gl4_1compat_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1dv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1d(program, location, v0);
+}
+
+void gl4_1compat_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1fv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1f(program, location, v0);
+}
+
+void gl4_1compat_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1iv(program, location, count, value);
+}
+
+void gl4_1compat_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1i(program, location, v0);
+}
+
+void gl4_1compat_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineiv(pipeline, pname, params);
+}
+
+GLboolean gl4_1compat_glIsProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsProgramPipeline(pipeline);
+}
+
+void gl4_1compat_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenProgramPipelines(n, pipelines);
+}
+
+void gl4_1compat_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteProgramPipelines(n, pipelines);
+}
+
+void gl4_1compat_glBindProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindProgramPipeline(pipeline);
+}
+
+void gl4_1compat_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glActiveShaderProgram(pipeline, program);
+}
+
+void gl4_1compat_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glUseProgramStages(pipeline, stages, program);
+}
+
+void gl4_1compat_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramParameteri(program, pname, value);
+}
+
+void gl4_1compat_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramBinary(program, binaryFormat, binary, length);
+}
+
+void gl4_1compat_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
+}
+
+void gl4_1compat_glClearDepthf(void *_glfuncs, GLfloat dd)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearDepthf(dd);
+}
+
+void gl4_1compat_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRangef(n, f);
+}
+
+void gl4_1compat_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderPrecisionFormat(shadertype, precisionType, range_, precision);
+}
+
+void gl4_1compat_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderBinary(count, shaders, binaryFormat, binary, length);
+}
+
+void gl4_1compat_glReleaseShaderCompiler(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glReleaseShaderCompiler();
+}
+
+void gl4_1compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl4_1compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl4_1compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl4_1compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl4_1compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl4_1compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl4_1compat_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl4_1compat_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl4_1compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl4_1compat_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl4_1compat_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl4_1compat_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl4_1compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl4_1compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl4_1compat_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl4_1compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl4_1compat_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl4_1compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl4_1compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl4_1compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl4_1compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl4_1compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl4_1compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl4_1compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl4_1compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl4_1compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl4_1compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl4_1compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl4_1compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl4_1compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl4_1compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl4_1compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl4_1compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl4_1compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl4_1compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl4_1compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl4_1compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl4_1compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl4_1compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl4_1compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl4_1compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl4_1compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl4_1compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl4_1compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl4_1compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl4_1compat_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl4_1compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl4_1compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl4_1compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl4_1compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl4_1compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl4_1compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl4_1compat_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl4_1compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl4_1compat_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl4_1compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl4_1compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl4_1compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl4_1compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl4_1compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl4_1compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl4_1compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl4_1compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl4_1compat_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl4_1compat_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl4_1compat_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl4_1compat_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl4_1compat_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl4_1compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl4_1compat_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl4_1compat_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl4_1compat_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl4_1compat_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl4_1compat_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl4_1compat_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl4_1compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl4_1compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl4_1compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl4_1compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl4_1compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl4_1compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl4_1compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl4_1compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl4_1compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl4_1compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl4_1compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl4_1compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl4_1compat_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl4_1compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl4_1compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl4_1compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl4_1compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl4_1compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl4_1compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl4_1compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl4_1compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl4_1compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl4_1compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl4_1compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl4_1compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl4_1compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl4_1compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl4_1compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl4_1compat_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl4_1compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl4_1compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl4_1compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl4_1compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl4_1compat_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl4_1compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl4_1compat_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl4_1compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl4_1compat_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl4_1compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl4_1compat_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl4_1compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl4_1compat_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl4_1compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl4_1compat_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl4_1compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl4_1compat_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl4_1compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl4_1compat_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl4_1compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl4_1compat_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl4_1compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl4_1compat_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl4_1compat_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl4_1compat_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl4_1compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl4_1compat_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl4_1compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl4_1compat_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl4_1compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl4_1compat_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl4_1compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl4_1compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl4_1compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl4_1compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl4_1compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl4_1compat_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl4_1compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl4_1compat_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl4_1compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl4_1compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl4_1compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl4_1compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl4_1compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl4_1compat_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl4_1compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl4_1compat_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl4_1compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl4_1compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl4_1compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl4_1compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl4_1compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl4_1compat_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl4_1compat_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl4_1compat_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl4_1compat_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl4_1compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl4_1compat_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl4_1compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl4_1compat_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl4_1compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl4_1compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl4_1compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl4_1compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl4_1compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl4_1compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl4_1compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl4_1compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl4_1compat_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl4_1compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl4_1compat_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl4_1compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl4_1compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl4_1compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl4_1compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl4_1compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl4_1compat_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl4_1compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl4_1compat_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl4_1compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl4_1compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl4_1compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl4_1compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl4_1compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl4_1compat_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl4_1compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl4_1compat_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl4_1compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl4_1compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl4_1compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl4_1compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl4_1compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl4_1compat_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl4_1compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl4_1compat_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl4_1compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl4_1compat_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl4_1compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl4_1compat_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl4_1compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl4_1compat_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl4_1compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl4_1compat_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl4_1compat_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl4_1compat_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl4_1compat_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl4_1compat_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl4_1compat_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl4_1compat_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl4_1compat_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl4_1compat_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl4_1compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl4_1compat_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl4_1compat_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl4_1compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl4_1compat_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl4_1compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl4_1compat_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl4_1compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl4_1compat_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl4_1compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl4_1compat_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl4_1compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl4_1compat_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl4_1compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl4_1compat_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl4_1compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl4_1compat_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl4_1compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl4_1compat_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl4_1compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl4_1compat_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl4_1compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl4_1compat_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl4_1compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl4_1compat_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl4_1compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl4_1compat_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl4_1compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl4_1compat_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl4_1compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl4_1compat_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl4_1compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl4_1compat_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl4_1compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl4_1compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl4_1compat_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl4_1compat_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl4_1compat_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl4_1compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl4_1compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl4_1compat_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl4_1compat_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl4_1compat_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl4_1compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl4_1compat_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl4_1compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl4_1compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl4_1compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl4_1compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl4_1compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl4_1compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl4_1compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl4_1compat_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl4_1compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl4_1compat_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl4_1compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl4_1compat_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl4_1compat_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl4_1compat_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl4_1compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl4_1compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl4_1compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl4_1compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl4_1compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl4_1compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl4_1compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl4_1compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl4_1compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl4_1compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl4_1compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl4_1compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl4_1compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl4_1compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl4_1compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl4_1compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl4_1compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl4_1compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl4_1compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl4_1compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl4_1compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl4_1compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl4_1compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl4_1compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl4_1compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl4_1compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl4_1compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl4_1compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl4_1compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl4_1compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl4_1compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl4_1compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl4_1compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl4_1compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl4_1compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl4_1compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl4_1compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl4_1compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl4_1compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl4_1compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl4_1compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl4_1compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl4_1compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl4_1compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl4_1compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl4_1compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl4_1compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl4_1compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl4_1compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl4_1compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl4_1compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl4_1compat_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl4_1compat_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl4_1compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl4_1compat_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl4_1compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl4_1compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl4_1compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl4_1compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl4_1compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl4_1compat_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl4_1compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl4_1compat_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl4_1compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl4_1compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl4_1compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl4_1compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl4_1compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl4_1compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl4_1compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl4_1compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl4_1compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl4_1compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl4_1compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl4_1compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl4_1compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl4_1compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl4_1compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl4_1compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl4_1compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl4_1compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl4_1compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl4_1compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl4_1compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl4_1compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl4_1compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl4_1compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl4_1compat_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl4_1compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl4_1compat_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
+void gl4_1compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4usv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4uiv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4ubv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4sv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4s(index, x, y, z, w);
+}
+
+void gl4_1compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4iv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gl4_1compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4dv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4d(index, x, y, z, w);
+}
+
+void gl4_1compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4bv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nusv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nuiv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nubv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nub(index, x, y, z, w);
+}
+
+void gl4_1compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nsv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Niv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nbv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3sv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3s(index, x, y, z);
+}
+
+void gl4_1compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gl4_1compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3dv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3d(index, x, y, z);
+}
+
+void gl4_1compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2sv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2s(index, x, y);
+}
+
+void gl4_1compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gl4_1compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2dv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2d(index, x, y);
+}
+
+void gl4_1compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1sv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1s(index, x);
+}
+
+void gl4_1compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gl4_1compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1dv(index, v);
+}
+
+void gl4_1compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1d(index, x);
+}
+
+void gl4_1compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4usv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ubv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4sv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4bv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4uiv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3uiv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2uiv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1uiv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4iv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3iv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2iv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1iv(index, v);
+}
+
+void gl4_1compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ui(index, x, y, z, w);
+}
+
+void gl4_1compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3ui(index, x, y, z);
+}
+
+void gl4_1compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2ui(index, x, y);
+}
+
+void gl4_1compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1ui(index, x);
+}
+
+void gl4_1compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4i(index, x, y, z, w);
+}
+
+void gl4_1compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3i(index, x, y, z);
+}
+
+void gl4_1compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2i(index, x, y);
+}
+
+void gl4_1compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x)
+{
+ QOpenGLFunctions_4_1_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1i(index, x);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/funcs.h
new file mode 100644
index 000000000..3e583ce97
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/funcs.h
@@ -0,0 +1,920 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl4_1compat_funcs();
+
+void gl4_1compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_1compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl4_1compat_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl4_1compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl4_1compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_1compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl4_1compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl4_1compat_glGetError(void *_glfuncs);
+void gl4_1compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl4_1compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl4_1compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_1compat_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl4_1compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl4_1compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_1compat_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl4_1compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl4_1compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_1compat_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl4_1compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl4_1compat_glFlush(void *_glfuncs);
+void gl4_1compat_glFinish(void *_glfuncs);
+void gl4_1compat_glEnable(void *_glfuncs, GLenum cap);
+void gl4_1compat_glDisable(void *_glfuncs, GLenum cap);
+void gl4_1compat_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl4_1compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl4_1compat_glStencilMask(void *_glfuncs, GLuint mask);
+void gl4_1compat_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl4_1compat_glClearStencil(void *_glfuncs, GLint s);
+void gl4_1compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_1compat_glClear(void *_glfuncs, GLbitfield mask);
+void gl4_1compat_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl4_1compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_1compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_1compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_1compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_1compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_1compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_1compat_glPointSize(void *_glfuncs, GLfloat size);
+void gl4_1compat_glLineWidth(void *_glfuncs, GLfloat width);
+void gl4_1compat_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl4_1compat_glFrontFace(void *_glfuncs, GLenum mode);
+void gl4_1compat_glCullFace(void *_glfuncs, GLenum mode);
+void gl4_1compat_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl4_1compat_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl4_1compat_glIsTexture(void *_glfuncs, GLuint texture);
+void gl4_1compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl4_1compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl4_1compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl4_1compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_1compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl4_1compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl4_1compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl4_1compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl4_1compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_1compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl4_1compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_1compat_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);
+void gl4_1compat_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_1compat_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl4_1compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_1compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl4_1compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_1compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_1compat_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);
+void gl4_1compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_1compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_1compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_1compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl4_1compat_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_1compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_1compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl4_1compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_1compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_1compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl4_1compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl4_1compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl4_1compat_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl4_1compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl4_1compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl4_1compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl4_1compat_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl4_1compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl4_1compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl4_1compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl4_1compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl4_1compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl4_1compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1compat_glEndQuery(void *_glfuncs, GLenum target);
+void gl4_1compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl4_1compat_glIsQuery(void *_glfuncs, GLuint id);
+void gl4_1compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_1compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_1compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl4_1compat_glValidateProgram(void *_glfuncs, GLuint program);
+void gl4_1compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_1compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_1compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_1compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_1compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_1compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_1compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl4_1compat_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl4_1compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_1compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_1compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl4_1compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl4_1compat_glUseProgram(void *_glfuncs, GLuint program);
+void gl4_1compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl4_1compat_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl4_1compat_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl4_1compat_glIsProgram(void *_glfuncs, GLuint program);
+void gl4_1compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_1compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_1compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl4_1compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl4_1compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_1compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl4_1compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_1compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl4_1compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_1compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl4_1compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_1compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl4_1compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_1compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_1compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_1compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_1compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_1compat_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl4_1compat_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl4_1compat_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl4_1compat_glCreateProgram(void *_glfuncs);
+void gl4_1compat_glCompileShader(void *_glfuncs, GLuint shader);
+void gl4_1compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl4_1compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_1compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl4_1compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_1compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl4_1compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl4_1compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl4_1compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl4_1compat_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl4_1compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl4_1compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl4_1compat_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl4_1compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl4_1compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl4_1compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_1compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl4_1compat_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl4_1compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl4_1compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl4_1compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl4_1compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl4_1compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl4_1compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl4_1compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl4_1compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl4_1compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl4_1compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl4_1compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_1compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl4_1compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl4_1compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl4_1compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl4_1compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl4_1compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl4_1compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl4_1compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl4_1compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl4_1compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl4_1compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_1compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_1compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_1compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_1compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_1compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_1compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_1compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl4_1compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl4_1compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_1compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl4_1compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl4_1compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl4_1compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_1compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glEndConditionalRender(void *_glfuncs);
+void gl4_1compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl4_1compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl4_1compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl4_1compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl4_1compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_1compat_glEndTransformFeedback(void *_glfuncs);
+void gl4_1compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl4_1compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl4_1compat_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_1compat_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_1compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl4_1compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl4_1compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl4_1compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl4_1compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl4_1compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl4_1compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl4_1compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl4_1compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl4_1compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl4_1compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl4_1compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl4_1compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl4_1compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl4_1compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl4_1compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl4_1compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_1compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_1compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl4_1compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl4_1compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl4_1compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl4_1compat_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl4_1compat_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl4_1compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl4_1compat_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl4_1compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl4_1compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_1compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_1compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl4_1compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl4_1compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl4_1compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_1compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_1compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_1compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_1compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_1compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_1compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_1compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_1compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_1compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_1compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_1compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_1compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_1compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_1compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_1compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_1compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_1compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_1compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_1compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_1compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_1compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_1compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_1compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_1compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_1compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_1compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_1compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_1compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl4_1compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl4_1compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl4_1compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl4_1compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_1compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_1compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl4_1compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_1compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl4_1compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl4_1compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_1compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl4_1compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl4_1compat_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl4_1compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl4_1compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl4_1compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_1compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl4_1compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+void gl4_1compat_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params);
+void gl4_1compat_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index);
+void gl4_1compat_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id);
+void gl4_1compat_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream);
+void gl4_1compat_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id);
+void gl4_1compat_glResumeTransformFeedback(void *_glfuncs);
+void gl4_1compat_glPauseTransformFeedback(void *_glfuncs);
+GLboolean gl4_1compat_glIsTransformFeedback(void *_glfuncs, GLuint id);
+void gl4_1compat_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_1compat_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_1compat_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id);
+void gl4_1compat_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values);
+void gl4_1compat_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value);
+void gl4_1compat_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values);
+void gl4_1compat_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params);
+void gl4_1compat_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value);
+void gl4_1compat_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_1compat_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_1compat_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
+GLuint gl4_1compat_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+GLint gl4_1compat_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+void gl4_1compat_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params);
+void gl4_1compat_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1compat_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1compat_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1compat_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1compat_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_1compat_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_1compat_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1);
+void gl4_1compat_glUniform1d(void *_glfuncs, GLint location, GLdouble v0);
+void gl4_1compat_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect);
+void gl4_1compat_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect);
+void gl4_1compat_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+void gl4_1compat_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst);
+void gl4_1compat_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+void gl4_1compat_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode);
+void gl4_1compat_glMinSampleShading(void *_glfuncs, GLfloat value);
+void gl4_1compat_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data);
+void gl4_1compat_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data);
+void gl4_1compat_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f);
+void gl4_1compat_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v);
+void gl4_1compat_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_1compat_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+void gl4_1compat_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v);
+void gl4_1compat_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_1compat_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+void gl4_1compat_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v);
+void gl4_1compat_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_1compat_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1compat_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1compat_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1compat_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1compat_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_1compat_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_1compat_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_1compat_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_1compat_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_1compat_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_1compat_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1compat_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1compat_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_1compat_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_1compat_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1compat_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_1compat_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1compat_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_1compat_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_1compat_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_1compat_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_1compat_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_1compat_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1compat_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_1compat_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1compat_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_1compat_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_1compat_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_1compat_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_1compat_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1);
+void gl4_1compat_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1compat_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1);
+void gl4_1compat_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1compat_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1);
+void gl4_1compat_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_1compat_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1);
+void gl4_1compat_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_1compat_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0);
+void gl4_1compat_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1compat_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0);
+void gl4_1compat_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1compat_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0);
+void gl4_1compat_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_1compat_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0);
+void gl4_1compat_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params);
+GLboolean gl4_1compat_glIsProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_1compat_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines);
+void gl4_1compat_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines);
+void gl4_1compat_glBindProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_1compat_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program);
+void gl4_1compat_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program);
+void gl4_1compat_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value);
+void gl4_1compat_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_1compat_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
+void gl4_1compat_glClearDepthf(void *_glfuncs, GLfloat dd);
+void gl4_1compat_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f);
+void gl4_1compat_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision);
+void gl4_1compat_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_1compat_glReleaseShaderCompiler(void *_glfuncs);
+void gl4_1compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_1compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_1compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_1compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_1compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl4_1compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl4_1compat_glPushMatrix(void *_glfuncs);
+void gl4_1compat_glPopMatrix(void *_glfuncs);
+void gl4_1compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl4_1compat_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_1compat_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_1compat_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl4_1compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_1compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_1compat_glLoadIdentity(void *_glfuncs);
+void gl4_1compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl4_1compat_glIsList(void *_glfuncs, GLuint list);
+void gl4_1compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl4_1compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl4_1compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl4_1compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl4_1compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl4_1compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl4_1compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl4_1compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl4_1compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl4_1compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl4_1compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl4_1compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl4_1compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl4_1compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl4_1compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl4_1compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl4_1compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl4_1compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_1compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl4_1compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl4_1compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl4_1compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl4_1compat_glEvalPoint1(void *_glfuncs, GLint i);
+void gl4_1compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl4_1compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl4_1compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl4_1compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl4_1compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl4_1compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl4_1compat_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl4_1compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl4_1compat_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl4_1compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl4_1compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl4_1compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl4_1compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl4_1compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl4_1compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl4_1compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl4_1compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl4_1compat_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl4_1compat_glPopAttrib(void *_glfuncs);
+void gl4_1compat_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl4_1compat_glIndexMask(void *_glfuncs, GLuint mask);
+void gl4_1compat_glClearIndex(void *_glfuncs, GLfloat c);
+void gl4_1compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_1compat_glPushName(void *_glfuncs, GLuint name);
+void gl4_1compat_glPopName(void *_glfuncs);
+void gl4_1compat_glPassThrough(void *_glfuncs, GLfloat token);
+void gl4_1compat_glLoadName(void *_glfuncs, GLuint name);
+void gl4_1compat_glInitNames(void *_glfuncs);
+GLint gl4_1compat_glRenderMode(void *_glfuncs, GLenum mode);
+void gl4_1compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl4_1compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl4_1compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl4_1compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl4_1compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl4_1compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl4_1compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl4_1compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl4_1compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_1compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_1compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_1compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_1compat_glShadeModel(void *_glfuncs, GLenum mode);
+void gl4_1compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl4_1compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl4_1compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl4_1compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl4_1compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl4_1compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl4_1compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_1compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl4_1compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_1compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_1compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl4_1compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl4_1compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl4_1compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl4_1compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_1compat_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl4_1compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_1compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_1compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_1compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl4_1compat_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_1compat_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl4_1compat_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_1compat_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_1compat_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_1compat_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_1compat_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_1compat_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_1compat_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_1compat_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl4_1compat_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_1compat_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_1compat_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl4_1compat_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl4_1compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl4_1compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl4_1compat_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl4_1compat_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl4_1compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl4_1compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl4_1compat_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl4_1compat_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl4_1compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl4_1compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl4_1compat_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl4_1compat_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glTexCoord1i(void *_glfuncs, GLint s);
+void gl4_1compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl4_1compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl4_1compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl4_1compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl4_1compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl4_1compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl4_1compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl4_1compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl4_1compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl4_1compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl4_1compat_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_1compat_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl4_1compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_1compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_1compat_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_1compat_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_1compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_1compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_1compat_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_1compat_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl4_1compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_1compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_1compat_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl4_1compat_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl4_1compat_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl4_1compat_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl4_1compat_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl4_1compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl4_1compat_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl4_1compat_glIndexs(void *_glfuncs, GLshort c);
+void gl4_1compat_glIndexiv(void *_glfuncs, const GLint* c);
+void gl4_1compat_glIndexi(void *_glfuncs, GLint c);
+void gl4_1compat_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl4_1compat_glIndexf(void *_glfuncs, GLfloat c);
+void gl4_1compat_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl4_1compat_glIndexd(void *_glfuncs, GLdouble c);
+void gl4_1compat_glEnd(void *_glfuncs);
+void gl4_1compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl4_1compat_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl4_1compat_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl4_1compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl4_1compat_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl4_1compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl4_1compat_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl4_1compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl4_1compat_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl4_1compat_glColor4iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl4_1compat_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_1compat_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl4_1compat_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl4_1compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl4_1compat_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl4_1compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl4_1compat_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl4_1compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl4_1compat_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl4_1compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl4_1compat_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl4_1compat_glColor3iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl4_1compat_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl4_1compat_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl4_1compat_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl4_1compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl4_1compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl4_1compat_glBegin(void *_glfuncs, GLenum mode);
+void gl4_1compat_glListBase(void *_glfuncs, GLuint base);
+GLuint gl4_1compat_glGenLists(void *_glfuncs, GLsizei range_);
+void gl4_1compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl4_1compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl4_1compat_glCallList(void *_glfuncs, GLuint list);
+void gl4_1compat_glEndList(void *_glfuncs);
+void gl4_1compat_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl4_1compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl4_1compat_glPopClientAttrib(void *_glfuncs);
+void gl4_1compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl4_1compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl4_1compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glEnableClientState(void *_glfuncs, GLenum array);
+void gl4_1compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glDisableClientState(void *_glfuncs, GLenum array);
+void gl4_1compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glArrayElement(void *_glfuncs, GLint i);
+void gl4_1compat_glResetMinmax(void *_glfuncs, GLenum target);
+void gl4_1compat_glResetHistogram(void *_glfuncs, GLenum target);
+void gl4_1compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl4_1compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl4_1compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl4_1compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl4_1compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl4_1compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl4_1compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl4_1compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_1compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl4_1compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_1compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl4_1compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_1compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl4_1compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl4_1compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl4_1compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl4_1compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl4_1compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_1compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl4_1compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl4_1compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_1compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_1compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl4_1compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_1compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_1compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_1compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_1compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_1compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl4_1compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_1compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl4_1compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_1compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl4_1compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_1compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl4_1compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_1compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl4_1compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_1compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl4_1compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_1compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl4_1compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_1compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl4_1compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_1compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl4_1compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_1compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl4_1compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_1compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl4_1compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_1compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl4_1compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_1compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl4_1compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_1compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl4_1compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_1compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl4_1compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_1compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl4_1compat_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_1compat_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_1compat_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_1compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_1compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_1compat_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_1compat_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl4_1compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_1compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_1compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl4_1compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl4_1compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl4_1compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl4_1compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl4_1compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl4_1compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl4_1compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl4_1compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl4_1compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl4_1compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl4_1compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl4_1compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl4_1compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl4_1compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl4_1compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl4_1compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl4_1compat_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl4_1compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl4_1compat_glFogCoordf(void *_glfuncs, GLfloat coord);
+void gl4_1compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_1compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_1compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_1compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_1compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_1compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_1compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_1compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_1compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_1compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_1compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_1compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_1compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_1compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+void gl4_1compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_1compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_1compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_1compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_1compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z);
+void gl4_1compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_1compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gl4_1compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_1compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_1compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y);
+void gl4_1compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_1compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gl4_1compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_1compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_1compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x);
+void gl4_1compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_1compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gl4_1compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_1compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_1compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_1compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_1compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_1compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_1compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_1compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_1compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_1compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_1compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_1compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_1compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_1compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+void gl4_1compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z);
+void gl4_1compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y);
+void gl4_1compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x);
+void gl4_1compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w);
+void gl4_1compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z);
+void gl4_1compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y);
+void gl4_1compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/gl.go
new file mode 100644
index 000000000..3d4370205
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1compat/gl.go
@@ -0,0 +1,9201 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 4.1 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl4_1compat_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 4.1 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 4.1 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+ FIXED = 0x140C
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ PATCHES = 0x000E
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ VERTEX_SHADER_BIT = 0x00000001
+ FRAGMENT_SHADER_BIT = 0x00000002
+ GEOMETRY_SHADER_BIT = 0x00000004
+ TESS_CONTROL_SHADER_BIT = 0x00000008
+ TESS_EVALUATION_SHADER_BIT = 0x00000010
+ ALL_SHADER_BITS = 0xFFFFFFFF
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ INDEX = 0x8222
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ PROGRAM_SEPARABLE = 0x8258
+ ACTIVE_PROGRAM = 0x8259
+ PROGRAM_PIPELINE_BINDING = 0x825A
+ MAX_VIEWPORTS = 0x825B
+ VIEWPORT_SUBPIXEL_BITS = 0x825C
+ VIEWPORT_BOUNDS_RANGE = 0x825D
+ LAYER_PROVOKING_VERTEX = 0x825E
+ VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+ UNDEFINED_VERTEX = 0x8260
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ PROGRAM_BINARY_LENGTH = 0x8741
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+ PROGRAM_BINARY_FORMATS = 0x87FF
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+ MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ GEOMETRY_SHADER_INVOCATIONS = 0x887F
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+ IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_LUMINANCE_TYPE = 0x8C14
+ TEXTURE_INTENSITY_TYPE = 0x8C15
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ SAMPLE_SHADING = 0x8C36
+ MIN_SAMPLE_SHADING_VALUE = 0x8C37
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGB565 = 0x8D62
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ ACTIVE_SUBROUTINES = 0x8DE5
+ ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+ MAX_SUBROUTINES = 0x8DE7
+ MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+ LOW_FLOAT = 0x8DF0
+ MEDIUM_FLOAT = 0x8DF1
+ HIGH_FLOAT = 0x8DF2
+ LOW_INT = 0x8DF3
+ MEDIUM_INT = 0x8DF4
+ HIGH_INT = 0x8DF5
+ SHADER_BINARY_FORMATS = 0x8DF8
+ NUM_SHADER_BINARY_FORMATS = 0x8DF9
+ SHADER_COMPILER = 0x8DFA
+ MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+ MAX_VARYING_VECTORS = 0x8DFC
+ MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+ MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+ TRANSFORM_FEEDBACK = 0x8E22
+ TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+ TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+ TRANSFORM_FEEDBACK_BINDING = 0x8E25
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+ ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+ ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+ NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+ COMPATIBLE_SUBROUTINES = 0x8E4B
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+ MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+ MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+ FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+ MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+ MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+ MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+ MAX_VERTEX_STREAMS = 0x8E71
+ PATCH_VERTICES = 0x8E72
+ PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+ PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+ TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+ TESS_GEN_MODE = 0x8E76
+ TESS_GEN_SPACING = 0x8E77
+ TESS_GEN_VERTEX_ORDER = 0x8E78
+ TESS_GEN_POINT_MODE = 0x8E79
+ ISOLINES = 0x8E7A
+ FRACTIONAL_ODD = 0x8E7B
+ FRACTIONAL_EVEN = 0x8E7C
+ MAX_PATCH_VERTICES = 0x8E7D
+ MAX_TESS_GEN_LEVEL = 0x8E7E
+ MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+ MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+ MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+ MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+ MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+ MAX_TESS_PATCH_COMPONENTS = 0x8E84
+ MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+ MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+ TESS_EVALUATION_SHADER = 0x8E87
+ TESS_CONTROL_SHADER = 0x8E88
+ MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+ MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ DRAW_INDIRECT_BUFFER = 0x8F3F
+ DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+ DOUBLE_MAT2 = 0x8F46
+ DOUBLE_MAT3 = 0x8F47
+ DOUBLE_MAT4 = 0x8F48
+ DOUBLE_MAT2x3 = 0x8F49
+ DOUBLE_MAT2x4 = 0x8F4A
+ DOUBLE_MAT3x2 = 0x8F4B
+ DOUBLE_MAT3x4 = 0x8F4C
+ DOUBLE_MAT4x2 = 0x8F4D
+ DOUBLE_MAT4x3 = 0x8F4E
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ DOUBLE_VEC2 = 0x8FFC
+ DOUBLE_VEC3 = 0x8FFD
+ DOUBLE_VEC4 = 0x8FFE
+ TEXTURE_CUBE_MAP_ARRAY = 0x9009
+ TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+ PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
+ SAMPLER_CUBE_MAP_ARRAY = 0x900C
+ SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+ INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+ UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+ RGB10_A2UI = 0x906F
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+)
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl4_1compat_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl4_1compat_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl4_1compat_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl4_1compat_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl4_1compat_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl4_1compat_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl4_1compat_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl4_1compat_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl4_1compat_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl4_1compat_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl4_1compat_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_1compat_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl4_1compat_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl4_1compat_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl4_1compat_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl4_1compat_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl4_1compat_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl4_1compat_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl4_1compat_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl4_1compat_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl4_1compat_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl4_1compat_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl4_1compat_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl4_1compat_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl4_1compat_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl4_1compat_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_1compat_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl4_1compat_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl4_1compat_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl4_1compat_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl4_1compat_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl4_1compat_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl4_1compat_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl4_1compat_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl4_1compat_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl4_1compat_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl4_1compat_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl4_1compat_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl4_1compat_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl4_1compat_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl4_1compat_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl4_1compat_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl4_1compat_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl4_1compat_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl4_1compat_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl4_1compat_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl4_1compat_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl4_1compat_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl4_1compat_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl4_1compat_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl4_1compat_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl4_1compat_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl4_1compat_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl4_1compat_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl4_1compat_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl4_1compat_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl4_1compat_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl4_1compat_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl4_1compat_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl4_1compat_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_1compat_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_1compat_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_1compat_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl4_1compat_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl4_1compat_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl4_1compat_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl4_1compat_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl4_1compat_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl4_1compat_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl4_1compat_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl4_1compat_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl4_1compat_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl4_1compat_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl4_1compat_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl4_1compat_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl4_1compat_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_1compat_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl4_1compat_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl4_1compat_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl4_1compat_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_1compat_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_1compat_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_1compat_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl4_1compat_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl4_1compat_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_1compat_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_1compat_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl4_1compat_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl4_1compat_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl4_1compat_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl4_1compat_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl4_1compat_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl4_1compat_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl4_1compat_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_1compat_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl4_1compat_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl4_1compat_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl4_1compat_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl4_1compat_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_1compat_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl4_1compat_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_1compat_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_1compat_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_1compat_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_1compat_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_1compat_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl4_1compat_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_1compat_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_1compat_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_1compat_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_1compat_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_1compat_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl4_1compat_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl4_1compat_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl4_1compat_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl4_1compat_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl4_1compat_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl4_1compat_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_1compat_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl4_1compat_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_1compat_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl4_1compat_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl4_1compat_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_1compat_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl4_1compat_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl4_1compat_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl4_1compat_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl4_1compat_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl4_1compat_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl4_1compat_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl4_1compat_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl4_1compat_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl4_1compat_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl4_1compat_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl4_1compat_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl4_1compat_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_1compat_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl4_1compat_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl4_1compat_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_1compat_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl4_1compat_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_1compat_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_1compat_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl4_1compat_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl4_1compat_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_1compat_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl4_1compat_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl4_1compat_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl4_1compat_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl4_1compat_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_1compat_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_1compat_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl4_1compat_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl4_1compat_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl4_1compat_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl4_1compat_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl4_1compat_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_1compat_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_1compat_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl4_1compat_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl4_1compat_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl4_1compat_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_1compat_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_1compat_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_1compat_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_1compat_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl4_1compat_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_1compat_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl4_1compat_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl4_1compat_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl4_1compat_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl4_1compat_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl4_1compat_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl4_1compat_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_1compat_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl4_1compat_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl4_1compat_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl4_1compat_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl4_1compat_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl4_1compat_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl4_1compat_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl4_1compat_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl4_1compat_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl4_1compat_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl4_1compat_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl4_1compat_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl4_1compat_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl4_1compat_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl4_1compat_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl4_1compat_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl4_1compat_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_1compat_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl4_1compat_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl4_1compat_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl4_1compat_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_1compat_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl4_1compat_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl4_1compat_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl4_1compat_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl4_1compat_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl4_1compat_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl4_1compat_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl4_1compat_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl4_1compat_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl4_1compat_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_1compat_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl4_1compat_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl4_1compat_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_1compat_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_1compat_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_1compat_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_1compat_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_1compat_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_1compat_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_1compat_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_1compat_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_1compat_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_1compat_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_1compat_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl4_1compat_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_1compat_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_1compat_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1compat_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1compat_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_1compat_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_1compat_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_1compat_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_1compat_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_1compat_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_1compat_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_1compat_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_1compat_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1compat_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1compat_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1compat_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1compat_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1compat_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1compat_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1compat_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1compat_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_1compat_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl4_1compat_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_1compat_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl4_1compat_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_1compat_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl4_1compat_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl4_1compat_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl4_1compat_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl4_1compat_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_1compat_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl4_1compat_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_1compat_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl4_1compat_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl4_1compat_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_1compat_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl4_1compat_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl4_1compat_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl4_1compat_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl4_1compat_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl4_1compat_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_1compat_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl4_1compat_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl4_1compat_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryIndexediv.xml
+func (gl *GL) GetQueryIndexediv(target glbase.Enum, index uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetQueryIndexediv(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQueryIndexed.xml
+func (gl *GL) EndQueryIndexed(target glbase.Enum, index uint32) {
+ C.gl4_1compat_glEndQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
+func (gl *GL) BeginQueryIndexed(target glbase.Enum, index, id uint32) {
+ C.gl4_1compat_glBeginQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStream.xml
+func (gl *GL) DrawTransformFeedbackStream(mode glbase.Enum, id, stream uint32) {
+ C.gl4_1compat_glDrawTransformFeedbackStream(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedback.xml
+func (gl *GL) DrawTransformFeedback(mode glbase.Enum, id uint32) {
+ C.gl4_1compat_glDrawTransformFeedback(gl.funcs, C.GLenum(mode), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResumeTransformFeedback.xml
+func (gl *GL) ResumeTransformFeedback() {
+ C.gl4_1compat_glResumeTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPauseTransformFeedback.xml
+func (gl *GL) PauseTransformFeedback() {
+ C.gl4_1compat_glPauseTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTransformFeedback.xml
+func (gl *GL) IsTransformFeedback(id uint32) bool {
+ glresult := C.gl4_1compat_glIsTransformFeedback(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenTransformFeedbacks.xml
+func (gl *GL) GenTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_1compat_glGenTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTransformFeedbacks.xml
+func (gl *GL) DeleteTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_1compat_glDeleteTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTransformFeedback.xml
+func (gl *GL) BindTransformFeedback(target glbase.Enum, id uint32) {
+ C.gl4_1compat_glBindTransformFeedback(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameterfv.xml
+func (gl *GL) PatchParameterfv(pname glbase.Enum, values []float32) {
+ C.gl4_1compat_glPatchParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameteri.xml
+func (gl *GL) PatchParameteri(pname glbase.Enum, value int32) {
+ C.gl4_1compat_glPatchParameteri(gl.funcs, C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramStageiv.xml
+func (gl *GL) GetProgramStageiv(program glbase.Program, shadertype, pname glbase.Enum, values []int32) {
+ C.gl4_1compat_glGetProgramStageiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformSubroutineuiv.xml
+func (gl *GL) GetUniformSubroutineuiv(shadertype glbase.Enum, location glbase.Uniform, params []uint32) {
+ C.gl4_1compat_glGetUniformSubroutineuiv(gl.funcs, C.GLenum(shadertype), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformSubroutinesuiv.xml
+func (gl *GL) UniformSubroutinesuiv(shadertype glbase.Enum, count int, value []uint32) {
+ C.gl4_1compat_glUniformSubroutinesuiv(gl.funcs, C.GLenum(shadertype), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineName.xml
+func (gl *GL) GetActiveSubroutineName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_1compat_glGetActiveSubroutineName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformName.xml
+func (gl *GL) GetActiveSubroutineUniformName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_1compat_glGetActiveSubroutineUniformName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformiv.xml
+func (gl *GL) GetActiveSubroutineUniformiv(program glbase.Program, shadertype glbase.Enum, index uint32, pname glbase.Enum, values []int32) {
+ C.gl4_1compat_glGetActiveSubroutineUniformiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineIndex.xml
+func (gl *GL) GetSubroutineIndex(program glbase.Program, shadertype glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_1compat_glGetSubroutineIndex(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineUniformLocation.xml
+func (gl *GL) GetSubroutineUniformLocation(program glbase.Program, shadertype glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_1compat_glGetSubroutineUniformLocation(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformdv.xml
+func (gl *GL) GetUniformdv(program glbase.Program, location glbase.Uniform, params []float64) {
+ C.gl4_1compat_glGetUniformdv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x3dv.xml
+func (gl *GL) UniformMatrix4x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1compat_glUniformMatrix4x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x2dv.xml
+func (gl *GL) UniformMatrix4x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1compat_glUniformMatrix4x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x4dv.xml
+func (gl *GL) UniformMatrix3x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1compat_glUniformMatrix3x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x2dv.xml
+func (gl *GL) UniformMatrix3x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1compat_glUniformMatrix3x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x4dv.xml
+func (gl *GL) UniformMatrix2x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1compat_glUniformMatrix2x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x3dv.xml
+func (gl *GL) UniformMatrix2x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1compat_glUniformMatrix2x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4dv.xml
+func (gl *GL) UniformMatrix4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1compat_glUniformMatrix4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3dv.xml
+func (gl *GL) UniformMatrix3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1compat_glUniformMatrix3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2dv.xml
+func (gl *GL) UniformMatrix2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1compat_glUniformMatrix2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4dv.xml
+func (gl *GL) Uniform4dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_1compat_glUniform4dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3dv.xml
+func (gl *GL) Uniform3dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_1compat_glUniform3dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2dv.xml
+func (gl *GL) Uniform2dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_1compat_glUniform2dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1dv.xml
+func (gl *GL) Uniform1dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_1compat_glUniform1dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4d.xml
+func (gl *GL) Uniform4d(location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_1compat_glUniform4d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3d.xml
+func (gl *GL) Uniform3d(location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_1compat_glUniform3d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2d.xml
+func (gl *GL) Uniform2d(location glbase.Uniform, v0, v1 float64) {
+ C.gl4_1compat_glUniform2d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1d.xml
+func (gl *GL) Uniform1d(location glbase.Uniform, v0 float64) {
+ C.gl4_1compat_glUniform1d(gl.funcs, C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsIndirect.xml
+func (gl *GL) DrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysIndirect.xml
+func (gl *GL) DrawArraysIndirect(mode glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparatei.xml
+func (gl *GL) BlendFuncSeparatei(buf uint32, srcRGB, dstRGB, srcAlpha, dstAlpha glbase.Enum) {
+ C.gl4_1compat_glBlendFuncSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(srcRGB), C.GLenum(dstRGB), C.GLenum(srcAlpha), C.GLenum(dstAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunci.xml
+func (gl *GL) BlendFunci(buf uint32, src, dst glbase.Enum) {
+ C.gl4_1compat_glBlendFunci(gl.funcs, C.GLuint(buf), C.GLenum(src), C.GLenum(dst))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparatei.xml
+func (gl *GL) BlendEquationSeparatei(buf uint32, modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_1compat_glBlendEquationSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationi.xml
+func (gl *GL) BlendEquationi(buf uint32, mode glbase.Enum) {
+ C.gl4_1compat_glBlendEquationi(gl.funcs, C.GLuint(buf), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinSampleShading.xml
+func (gl *GL) MinSampleShading(value float32) {
+ C.gl4_1compat_glMinSampleShading(gl.funcs, C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublei_v.xml
+func (gl *GL) GetDoublei_v(target glbase.Enum, index uint32, data []float64) {
+ C.gl4_1compat_glGetDoublei_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloati_v.xml
+func (gl *GL) GetFloati_v(target glbase.Enum, index uint32, data []float32) {
+ C.gl4_1compat_glGetFloati_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeIndexed.xml
+func (gl *GL) DepthRangeIndexed(index uint32, n, f float64) {
+ C.gl4_1compat_glDepthRangeIndexed(gl.funcs, C.GLuint(index), C.GLdouble(n), C.GLdouble(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeArrayv.xml
+func (gl *GL) DepthRangeArrayv(first uint32, count int, v []float64) {
+ C.gl4_1compat_glDepthRangeArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexedv.xml
+func (gl *GL) ScissorIndexedv(index uint32, v []int32) {
+ C.gl4_1compat_glScissorIndexedv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexed.xml
+func (gl *GL) ScissorIndexed(index uint32, left, bottom int32, width, height int) {
+ C.gl4_1compat_glScissorIndexed(gl.funcs, C.GLuint(index), C.GLint(left), C.GLint(bottom), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorArrayv.xml
+func (gl *GL) ScissorArrayv(first uint32, count int, v []int32) {
+ C.gl4_1compat_glScissorArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedfv.xml
+func (gl *GL) ViewportIndexedfv(index uint32, v []float32) {
+ C.gl4_1compat_glViewportIndexedfv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedf.xml
+func (gl *GL) ViewportIndexedf(index uint32, x, y, w, h float32) {
+ C.gl4_1compat_glViewportIndexedf(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(w), C.GLfloat(h))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportArrayv.xml
+func (gl *GL) ViewportArrayv(first uint32, count int, v []float32) {
+ C.gl4_1compat_glViewportArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribLdv.xml
+func (gl *GL) GetVertexAttribLdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ C.gl4_1compat_glGetVertexAttribLdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribLPointer.xml
+func (gl *GL) VertexAttribLPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glVertexAttribLPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4dv.xml
+func (gl *GL) VertexAttribL4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttribL4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3dv.xml
+func (gl *GL) VertexAttribL3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttribL3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2dv.xml
+func (gl *GL) VertexAttribL2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttribL2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1dv.xml
+func (gl *GL) VertexAttribL1dv(index glbase.Attrib, v []float64) {
+ C.gl4_1compat_glVertexAttribL1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4d.xml
+func (gl *GL) VertexAttribL4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_1compat_glVertexAttribL4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3d.xml
+func (gl *GL) VertexAttribL3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_1compat_glVertexAttribL3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2d.xml
+func (gl *GL) VertexAttribL2d(index glbase.Attrib, x, y float64) {
+ C.gl4_1compat_glVertexAttribL2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1d.xml
+func (gl *GL) VertexAttribL1d(index glbase.Attrib, x float64) {
+ C.gl4_1compat_glVertexAttribL1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineInfoLog.xml
+func (gl *GL) GetProgramPipelineInfoLog(pipeline uint32, bufSize int32, length []int32, infoLog []byte) {
+ C.gl4_1compat_glGetProgramPipelineInfoLog(gl.funcs, C.GLuint(pipeline), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgramPipeline.xml
+func (gl *GL) ValidateProgramPipeline(pipeline uint32) {
+ C.gl4_1compat_glValidateProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3dv.xml
+func (gl *GL) ProgramUniformMatrix4x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix4x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4dv.xml
+func (gl *GL) ProgramUniformMatrix3x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix3x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2dv.xml
+func (gl *GL) ProgramUniformMatrix4x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix4x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4dv.xml
+func (gl *GL) ProgramUniformMatrix2x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix2x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2dv.xml
+func (gl *GL) ProgramUniformMatrix3x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix3x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3dv.xml
+func (gl *GL) ProgramUniformMatrix2x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix2x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3fv.xml
+func (gl *GL) ProgramUniformMatrix4x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix4x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4fv.xml
+func (gl *GL) ProgramUniformMatrix3x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix3x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2fv.xml
+func (gl *GL) ProgramUniformMatrix4x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix4x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4fv.xml
+func (gl *GL) ProgramUniformMatrix2x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix2x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2fv.xml
+func (gl *GL) ProgramUniformMatrix3x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix3x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3fv.xml
+func (gl *GL) ProgramUniformMatrix2x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix2x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4dv.xml
+func (gl *GL) ProgramUniformMatrix4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3dv.xml
+func (gl *GL) ProgramUniformMatrix3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2dv.xml
+func (gl *GL) ProgramUniformMatrix2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4fv.xml
+func (gl *GL) ProgramUniformMatrix4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3fv.xml
+func (gl *GL) ProgramUniformMatrix3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2fv.xml
+func (gl *GL) ProgramUniformMatrix2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniformMatrix2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4uiv.xml
+func (gl *GL) ProgramUniform4uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_1compat_glProgramUniform4uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4ui.xml
+func (gl *GL) ProgramUniform4ui(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_1compat_glProgramUniform4ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4dv.xml
+func (gl *GL) ProgramUniform4dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniform4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4d.xml
+func (gl *GL) ProgramUniform4d(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_1compat_glProgramUniform4d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4fv.xml
+func (gl *GL) ProgramUniform4fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniform4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4f.xml
+func (gl *GL) ProgramUniform4f(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_1compat_glProgramUniform4f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4iv.xml
+func (gl *GL) ProgramUniform4iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniform4iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4i.xml
+func (gl *GL) ProgramUniform4i(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_1compat_glProgramUniform4i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3uiv.xml
+func (gl *GL) ProgramUniform3uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_1compat_glProgramUniform3uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3ui.xml
+func (gl *GL) ProgramUniform3ui(program glbase.Program, location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_1compat_glProgramUniform3ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3dv.xml
+func (gl *GL) ProgramUniform3dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniform3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3d.xml
+func (gl *GL) ProgramUniform3d(program glbase.Program, location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_1compat_glProgramUniform3d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3fv.xml
+func (gl *GL) ProgramUniform3fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniform3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3f.xml
+func (gl *GL) ProgramUniform3f(program glbase.Program, location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_1compat_glProgramUniform3f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3iv.xml
+func (gl *GL) ProgramUniform3iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniform3iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3i.xml
+func (gl *GL) ProgramUniform3i(program glbase.Program, location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_1compat_glProgramUniform3i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2uiv.xml
+func (gl *GL) ProgramUniform2uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_1compat_glProgramUniform2uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2ui.xml
+func (gl *GL) ProgramUniform2ui(program glbase.Program, location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_1compat_glProgramUniform2ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2dv.xml
+func (gl *GL) ProgramUniform2dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniform2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2d.xml
+func (gl *GL) ProgramUniform2d(program glbase.Program, location glbase.Uniform, v0, v1 float64) {
+ C.gl4_1compat_glProgramUniform2d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2fv.xml
+func (gl *GL) ProgramUniform2fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniform2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2f.xml
+func (gl *GL) ProgramUniform2f(program glbase.Program, location glbase.Uniform, v0, v1 float32) {
+ C.gl4_1compat_glProgramUniform2f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2iv.xml
+func (gl *GL) ProgramUniform2iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1compat_glProgramUniform2iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2i.xml
+func (gl *GL) ProgramUniform2i(program glbase.Program, location glbase.Uniform, v0, v1 int32) {
+ C.gl4_1compat_glProgramUniform2i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1uiv.xml
+func (gl *GL) ProgramUniform1uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_1compat_glProgramUniform1uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1ui.xml
+func (gl *GL) ProgramUniform1ui(program glbase.Program, location glbase.Uniform, v0 uint32) {
+ C.gl4_1compat_glProgramUniform1ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1dv.xml
+func (gl *GL) ProgramUniform1dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ C.gl4_1compat_glProgramUniform1dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1d.xml
+func (gl *GL) ProgramUniform1d(program glbase.Program, location glbase.Uniform, v0 float64) {
+ C.gl4_1compat_glProgramUniform1d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1fv.xml
+func (gl *GL) ProgramUniform1fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ C.gl4_1compat_glProgramUniform1fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1f.xml
+func (gl *GL) ProgramUniform1f(program glbase.Program, location glbase.Uniform, v0 float32) {
+ C.gl4_1compat_glProgramUniform1f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1iv.xml
+func (gl *GL) ProgramUniform1iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ C.gl4_1compat_glProgramUniform1iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1i.xml
+func (gl *GL) ProgramUniform1i(program glbase.Program, location glbase.Uniform, v0 int32) {
+ C.gl4_1compat_glProgramUniform1i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineiv.xml
+func (gl *GL) GetProgramPipelineiv(pipeline uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetProgramPipelineiv(gl.funcs, C.GLuint(pipeline), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgramPipeline.xml
+func (gl *GL) IsProgramPipeline(pipeline uint32) bool {
+ glresult := C.gl4_1compat_glIsProgramPipeline(gl.funcs, C.GLuint(pipeline))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenProgramPipelines.xml
+func (gl *GL) GenProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_1compat_glGenProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteProgramPipelines.xml
+func (gl *GL) DeleteProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_1compat_glDeleteProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindProgramPipeline.xml
+func (gl *GL) BindProgramPipeline(pipeline uint32) {
+ C.gl4_1compat_glBindProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveShaderProgram.xml
+func (gl *GL) ActiveShaderProgram(pipeline uint32, program glbase.Program) {
+ C.gl4_1compat_glActiveShaderProgram(gl.funcs, C.GLuint(pipeline), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUseProgramStages.xml
+func (gl *GL) UseProgramStages(pipeline uint32, stages glbase.Bitfield, program glbase.Program) {
+ C.gl4_1compat_glUseProgramStages(gl.funcs, C.GLuint(pipeline), C.GLbitfield(stages), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramParameteri.xml
+func (gl *GL) ProgramParameteri(program glbase.Program, pname glbase.Enum, value int32) {
+ C.gl4_1compat_glProgramParameteri(gl.funcs, C.GLuint(program), C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramBinary.xml
+func (gl *GL) ProgramBinary(program glbase.Program, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glProgramBinary(gl.funcs, C.GLuint(program), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramBinary.xml
+func (gl *GL) GetProgramBinary(program glbase.Program, bufSize int32, length []int32, binaryFormat []glbase.Enum, binary interface{}) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glGetProgramBinary(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLenum)(unsafe.Pointer(&binaryFormat[0])), binary_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepthf.xml
+func (gl *GL) ClearDepthf(dd float32) {
+ C.gl4_1compat_glClearDepthf(gl.funcs, C.GLfloat(dd))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangef.xml
+func (gl *GL) DepthRangef(n, f float32) {
+ C.gl4_1compat_glDepthRangef(gl.funcs, C.GLfloat(n), C.GLfloat(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderPrecisionFormat.xml
+func (gl *GL) GetShaderPrecisionFormat(shadertype, precisionType glbase.Enum, range_, precision []int32) {
+ C.gl4_1compat_glGetShaderPrecisionFormat(gl.funcs, C.GLenum(shadertype), C.GLenum(precisionType), (*C.GLint)(unsafe.Pointer(&range_[0])), (*C.GLint)(unsafe.Pointer(&precision[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShaderBinary.xml
+func (gl *GL) ShaderBinary(count int, shaders []glbase.Shader, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glShaderBinary(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&shaders[0])), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReleaseShaderCompiler.xml
+func (gl *GL) ReleaseShaderCompiler() {
+ C.gl4_1compat_glReleaseShaderCompiler(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl4_1compat_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl4_1compat_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl4_1compat_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl4_1compat_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl4_1compat_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl4_1compat_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl4_1compat_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl4_1compat_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl4_1compat_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl4_1compat_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl4_1compat_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl4_1compat_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl4_1compat_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl4_1compat_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl4_1compat_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl4_1compat_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl4_1compat_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl4_1compat_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl4_1compat_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl4_1compat_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl4_1compat_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl4_1compat_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl4_1compat_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl4_1compat_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl4_1compat_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl4_1compat_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl4_1compat_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl4_1compat_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl4_1compat_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl4_1compat_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl4_1compat_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl4_1compat_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl4_1compat_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl4_1compat_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl4_1compat_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl4_1compat_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl4_1compat_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl4_1compat_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl4_1compat_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl4_1compat_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl4_1compat_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl4_1compat_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl4_1compat_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl4_1compat_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl4_1compat_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl4_1compat_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl4_1compat_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl4_1compat_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl4_1compat_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl4_1compat_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl4_1compat_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl4_1compat_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl4_1compat_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl4_1compat_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl4_1compat_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl4_1compat_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl4_1compat_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl4_1compat_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl4_1compat_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl4_1compat_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl4_1compat_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl4_1compat_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl4_1compat_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl4_1compat_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl4_1compat_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl4_1compat_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl4_1compat_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl4_1compat_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl4_1compat_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl4_1compat_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl4_1compat_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl4_1compat_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl4_1compat_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl4_1compat_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl4_1compat_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl4_1compat_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl4_1compat_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl4_1compat_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl4_1compat_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl4_1compat_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl4_1compat_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl4_1compat_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl4_1compat_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl4_1compat_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl4_1compat_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl4_1compat_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl4_1compat_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl4_1compat_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl4_1compat_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl4_1compat_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl4_1compat_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl4_1compat_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl4_1compat_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl4_1compat_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl4_1compat_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl4_1compat_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl4_1compat_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl4_1compat_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl4_1compat_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl4_1compat_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl4_1compat_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl4_1compat_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl4_1compat_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl4_1compat_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl4_1compat_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl4_1compat_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl4_1compat_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl4_1compat_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl4_1compat_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl4_1compat_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl4_1compat_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl4_1compat_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl4_1compat_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl4_1compat_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl4_1compat_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl4_1compat_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl4_1compat_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl4_1compat_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl4_1compat_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl4_1compat_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl4_1compat_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl4_1compat_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl4_1compat_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl4_1compat_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl4_1compat_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl4_1compat_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl4_1compat_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl4_1compat_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl4_1compat_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl4_1compat_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl4_1compat_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl4_1compat_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl4_1compat_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl4_1compat_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl4_1compat_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl4_1compat_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl4_1compat_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl4_1compat_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl4_1compat_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl4_1compat_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl4_1compat_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl4_1compat_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl4_1compat_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl4_1compat_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl4_1compat_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl4_1compat_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl4_1compat_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl4_1compat_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl4_1compat_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl4_1compat_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl4_1compat_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl4_1compat_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl4_1compat_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl4_1compat_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl4_1compat_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl4_1compat_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl4_1compat_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl4_1compat_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl4_1compat_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl4_1compat_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl4_1compat_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl4_1compat_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl4_1compat_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl4_1compat_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl4_1compat_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl4_1compat_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl4_1compat_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl4_1compat_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl4_1compat_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl4_1compat_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl4_1compat_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl4_1compat_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl4_1compat_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl4_1compat_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl4_1compat_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl4_1compat_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl4_1compat_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl4_1compat_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl4_1compat_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl4_1compat_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl4_1compat_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl4_1compat_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl4_1compat_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl4_1compat_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl4_1compat_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl4_1compat_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl4_1compat_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl4_1compat_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl4_1compat_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl4_1compat_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl4_1compat_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl4_1compat_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl4_1compat_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl4_1compat_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl4_1compat_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl4_1compat_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl4_1compat_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl4_1compat_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl4_1compat_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl4_1compat_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl4_1compat_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl4_1compat_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl4_1compat_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl4_1compat_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl4_1compat_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1compat_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1compat_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl4_1compat_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl4_1compat_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl4_1compat_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl4_1compat_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl4_1compat_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl4_1compat_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl4_1compat_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl4_1compat_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl4_1compat_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl4_1compat_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl4_1compat_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl4_1compat_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl4_1compat_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl4_1compat_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl4_1compat_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl4_1compat_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl4_1compat_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl4_1compat_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl4_1compat_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl4_1compat_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl4_1compat_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl4_1compat_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl4_1compat_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl4_1compat_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl4_1compat_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl4_1compat_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl4_1compat_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl4_1compat_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl4_1compat_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl4_1compat_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl4_1compat_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl4_1compat_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl4_1compat_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl4_1compat_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl4_1compat_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl4_1compat_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl4_1compat_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl4_1compat_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl4_1compat_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl4_1compat_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl4_1compat_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl4_1compat_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl4_1compat_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl4_1compat_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl4_1compat_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1compat_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl4_1compat_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl4_1compat_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl4_1compat_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl4_1compat_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4usv.xml
+func (gl *GL) VertexAttrib4usv(index glbase.Attrib, v []uint16) {
+ C.gl4_1compat_glVertexAttrib4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4uiv.xml
+func (gl *GL) VertexAttrib4uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_1compat_glVertexAttrib4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4ubv.xml
+func (gl *GL) VertexAttrib4ubv(index glbase.Attrib, v []uint8) {
+ C.gl4_1compat_glVertexAttrib4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4sv.xml
+func (gl *GL) VertexAttrib4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4s.xml
+func (gl *GL) VertexAttrib4s(index glbase.Attrib, x, y, z, w int16) {
+ C.gl4_1compat_glVertexAttrib4s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4iv.xml
+func (gl *GL) VertexAttrib4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gl4_1compat_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4dv.xml
+func (gl *GL) VertexAttrib4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4d.xml
+func (gl *GL) VertexAttrib4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_1compat_glVertexAttrib4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4bv.xml
+func (gl *GL) VertexAttrib4bv(index glbase.Attrib, v []byte) {
+ C.gl4_1compat_glVertexAttrib4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nusv.xml
+func (gl *GL) VertexAttrib4Nusv(index glbase.Attrib, v []uint16) {
+ C.gl4_1compat_glVertexAttrib4Nusv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nuiv.xml
+func (gl *GL) VertexAttrib4Nuiv(index glbase.Attrib, v []uint32) {
+ C.gl4_1compat_glVertexAttrib4Nuiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nubv.xml
+func (gl *GL) VertexAttrib4Nubv(index glbase.Attrib, v []uint8) {
+ C.gl4_1compat_glVertexAttrib4Nubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nub.xml
+func (gl *GL) VertexAttrib4Nub(index glbase.Attrib, x, y, z, w uint8) {
+ C.gl4_1compat_glVertexAttrib4Nub(gl.funcs, C.GLuint(index), C.GLubyte(x), C.GLubyte(y), C.GLubyte(z), C.GLubyte(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nsv.xml
+func (gl *GL) VertexAttrib4Nsv(index glbase.Attrib, v []int16) {
+ C.gl4_1compat_glVertexAttrib4Nsv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Niv.xml
+func (gl *GL) VertexAttrib4Niv(index glbase.Attrib, v []int32) {
+ C.gl4_1compat_glVertexAttrib4Niv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nbv.xml
+func (gl *GL) VertexAttrib4Nbv(index glbase.Attrib, v []byte) {
+ C.gl4_1compat_glVertexAttrib4Nbv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3sv.xml
+func (gl *GL) VertexAttrib3sv(index glbase.Attrib, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib3sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3s.xml
+func (gl *GL) VertexAttrib3s(index glbase.Attrib, x, y, z int16) {
+ C.gl4_1compat_glVertexAttrib3s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gl4_1compat_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3dv.xml
+func (gl *GL) VertexAttrib3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3d.xml
+func (gl *GL) VertexAttrib3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_1compat_glVertexAttrib3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2sv.xml
+func (gl *GL) VertexAttrib2sv(index glbase.Attrib, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib2sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2s.xml
+func (gl *GL) VertexAttrib2s(index glbase.Attrib, x, y int16) {
+ C.gl4_1compat_glVertexAttrib2s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gl4_1compat_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2dv.xml
+func (gl *GL) VertexAttrib2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttrib2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2d.xml
+func (gl *GL) VertexAttrib2d(index glbase.Attrib, x, y float64) {
+ C.gl4_1compat_glVertexAttrib2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1sv.xml
+func (gl *GL) VertexAttrib1sv(index glbase.Attrib, v []int16) {
+ C.gl4_1compat_glVertexAttrib1sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1s.xml
+func (gl *GL) VertexAttrib1s(index glbase.Attrib, x int16) {
+ C.gl4_1compat_glVertexAttrib1s(gl.funcs, C.GLuint(index), C.GLshort(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, v []float32) {
+ C.gl4_1compat_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gl4_1compat_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1dv.xml
+func (gl *GL) VertexAttrib1dv(index glbase.Attrib, v []float64) {
+ C.gl4_1compat_glVertexAttrib1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1d.xml
+func (gl *GL) VertexAttrib1d(index glbase.Attrib, x float64) {
+ C.gl4_1compat_glVertexAttrib1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4usv.xml
+func (gl *GL) VertexAttribI4usv(index glbase.Attrib, v []uint16) {
+ C.gl4_1compat_glVertexAttribI4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4ubv.xml
+func (gl *GL) VertexAttribI4ubv(index glbase.Attrib, v []uint8) {
+ C.gl4_1compat_glVertexAttribI4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4sv.xml
+func (gl *GL) VertexAttribI4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttribI4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4bv.xml
+func (gl *GL) VertexAttribI4bv(index glbase.Attrib, v []byte) {
+ C.gl4_1compat_glVertexAttribI4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4uiv.xml
+func (gl *GL) VertexAttribI4uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_1compat_glVertexAttribI4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3uiv.xml
+func (gl *GL) VertexAttribI3uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_1compat_glVertexAttribI3uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2uiv.xml
+func (gl *GL) VertexAttribI2uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_1compat_glVertexAttribI2uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1uiv.xml
+func (gl *GL) VertexAttribI1uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_1compat_glVertexAttribI1uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4iv.xml
+func (gl *GL) VertexAttribI4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttribI4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3iv.xml
+func (gl *GL) VertexAttribI3iv(index glbase.Attrib, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttribI3iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2iv.xml
+func (gl *GL) VertexAttribI2iv(index glbase.Attrib, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1compat_glVertexAttribI2iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1iv.xml
+func (gl *GL) VertexAttribI1iv(index glbase.Attrib, v []int32) {
+ C.gl4_1compat_glVertexAttribI1iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4ui.xml
+func (gl *GL) VertexAttribI4ui(index glbase.Attrib, x, y, z, w uint32) {
+ C.gl4_1compat_glVertexAttribI4ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z), C.GLuint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3ui.xml
+func (gl *GL) VertexAttribI3ui(index glbase.Attrib, x, y, z uint32) {
+ C.gl4_1compat_glVertexAttribI3ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2ui.xml
+func (gl *GL) VertexAttribI2ui(index glbase.Attrib, x, y uint32) {
+ C.gl4_1compat_glVertexAttribI2ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1ui.xml
+func (gl *GL) VertexAttribI1ui(index glbase.Attrib, x uint32) {
+ C.gl4_1compat_glVertexAttribI1ui(gl.funcs, C.GLuint(index), C.GLuint(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4i.xml
+func (gl *GL) VertexAttribI4i(index glbase.Attrib, x, y, z, w int) {
+ C.gl4_1compat_glVertexAttribI4i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3i.xml
+func (gl *GL) VertexAttribI3i(index glbase.Attrib, x, y, z int) {
+ C.gl4_1compat_glVertexAttribI3i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2i.xml
+func (gl *GL) VertexAttribI2i(index glbase.Attrib, x, y int) {
+ C.gl4_1compat_glVertexAttribI2i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1i.xml
+func (gl *GL) VertexAttribI1i(index glbase.Attrib, x int) {
+ C.gl4_1compat_glVertexAttribI1i(gl.funcs, C.GLuint(index), C.GLint(x))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/funcs.cpp
new file mode 100644
index 000000000..9ae51693c
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/funcs.cpp
@@ -0,0 +1,2676 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_4_1_core.h>
+
+#include "funcs.h"
+
+void *gl4_1core_funcs() {
+ QOpenGLFunctions_4_1_Core* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_4_1_Core>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl4_1core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl4_1core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl4_1core_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl4_1core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl4_1core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl4_1core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl4_1core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl4_1core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl4_1core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl4_1core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl4_1core_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl4_1core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl4_1core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl4_1core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl4_1core_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl4_1core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl4_1core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl4_1core_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl4_1core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl4_1core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl4_1core_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl4_1core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl4_1core_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl4_1core_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl4_1core_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl4_1core_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl4_1core_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl4_1core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl4_1core_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl4_1core_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl4_1core_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl4_1core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl4_1core_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl4_1core_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl4_1core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl4_1core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl4_1core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl4_1core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl4_1core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl4_1core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl4_1core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl4_1core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl4_1core_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl4_1core_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl4_1core_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl4_1core_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl4_1core_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl4_1core_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl4_1core_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl4_1core_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl4_1core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl4_1core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl4_1core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl4_1core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl4_1core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl4_1core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl4_1core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl4_1core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl4_1core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl4_1core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl4_1core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl4_1core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl4_1core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl4_1core_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_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl4_1core_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_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl4_1core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl4_1core_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl4_1core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl4_1core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl4_1core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl4_1core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl4_1core_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_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl4_1core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl4_1core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl4_1core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl4_1core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl4_1core_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl4_1core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl4_1core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl4_1core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl4_1core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl4_1core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl4_1core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl4_1core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl4_1core_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl4_1core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl4_1core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl4_1core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl4_1core_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl4_1core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl4_1core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl4_1core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl4_1core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl4_1core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl4_1core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl4_1core_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl4_1core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl4_1core_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl4_1core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl4_1core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl4_1core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl4_1core_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl4_1core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl4_1core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl4_1core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl4_1core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl4_1core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl4_1core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl4_1core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl4_1core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl4_1core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl4_1core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl4_1core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl4_1core_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl4_1core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl4_1core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl4_1core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl4_1core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl4_1core_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl4_1core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl4_1core_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl4_1core_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl4_1core_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl4_1core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl4_1core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl4_1core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl4_1core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl4_1core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl4_1core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl4_1core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl4_1core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl4_1core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl4_1core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl4_1core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl4_1core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl4_1core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl4_1core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_1core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_1core_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl4_1core_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl4_1core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl4_1core_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl4_1core_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl4_1core_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl4_1core_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl4_1core_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl4_1core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl4_1core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl4_1core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl4_1core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl4_1core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl4_1core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl4_1core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl4_1core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl4_1core_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl4_1core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl4_1core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl4_1core_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl4_1core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl4_1core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl4_1core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl4_1core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl4_1core_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl4_1core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl4_1core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl4_1core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl4_1core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl4_1core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl4_1core_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl4_1core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl4_1core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl4_1core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl4_1core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl4_1core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl4_1core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl4_1core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl4_1core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl4_1core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl4_1core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl4_1core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl4_1core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl4_1core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl4_1core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl4_1core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl4_1core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl4_1core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl4_1core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl4_1core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl4_1core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl4_1core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl4_1core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl4_1core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl4_1core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl4_1core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl4_1core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl4_1core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl4_1core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl4_1core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl4_1core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl4_1core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl4_1core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_1core_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl4_1core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl4_1core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl4_1core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_1core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl4_1core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl4_1core_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl4_1core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl4_1core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl4_1core_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl4_1core_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl4_1core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl4_1core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl4_1core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl4_1core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl4_1core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl4_1core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl4_1core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl4_1core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl4_1core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl4_1core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl4_1core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl4_1core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl4_1core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl4_1core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl4_1core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl4_1core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl4_1core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_1core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_1core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl4_1core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl4_1core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl4_1core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl4_1core_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl4_1core_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl4_1core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl4_1core_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl4_1core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl4_1core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl4_1core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl4_1core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl4_1core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl4_1core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl4_1core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl4_1core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl4_1core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl4_1core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl4_1core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl4_1core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl4_1core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl4_1core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl4_1core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl4_1core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl4_1core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl4_1core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl4_1core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl4_1core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl4_1core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl4_1core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl4_1core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl4_1core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl4_1core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl4_1core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl4_1core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl4_1core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl4_1core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl4_1core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl4_1core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl4_1core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl4_1core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl4_1core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl4_1core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl4_1core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl4_1core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl4_1core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl4_1core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl4_1core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl4_1core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl4_1core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl4_1core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl4_1core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl4_1core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl4_1core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl4_1core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl4_1core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl4_1core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl4_1core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl4_1core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl4_1core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl4_1core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl4_1core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl4_1core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl4_1core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl4_1core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl4_1core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl4_1core_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl4_1core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl4_1core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl4_1core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl4_1core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl4_1core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
+void gl4_1core_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryIndexediv(target, index, pname, params);
+}
+
+void gl4_1core_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glEndQueryIndexed(target, index);
+}
+
+void gl4_1core_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBeginQueryIndexed(target, index, id);
+}
+
+void gl4_1core_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStream(mode, id, stream);
+}
+
+void gl4_1core_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedback(mode, id);
+}
+
+void gl4_1core_glResumeTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glResumeTransformFeedback();
+}
+
+void gl4_1core_glPauseTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPauseTransformFeedback();
+}
+
+GLboolean gl4_1core_glIsTransformFeedback(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsTransformFeedback(id);
+}
+
+void gl4_1core_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenTransformFeedbacks(n, ids);
+}
+
+void gl4_1core_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTransformFeedbacks(n, ids);
+}
+
+void gl4_1core_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindTransformFeedback(target, id);
+}
+
+void gl4_1core_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPatchParameterfv(pname, values);
+}
+
+void gl4_1core_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glPatchParameteri(pname, value);
+}
+
+void gl4_1core_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramStageiv(program, shadertype, pname, values);
+}
+
+void gl4_1core_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformSubroutineuiv(shadertype, location, params);
+}
+
+void gl4_1core_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformSubroutinesuiv(shadertype, count, value);
+}
+
+void gl4_1core_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_1core_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_1core_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
+}
+
+GLuint gl4_1core_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineIndex(program, shadertype, name);
+}
+
+GLint gl4_1core_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineUniformLocation(program, shadertype, name);
+}
+
+void gl4_1core_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformdv(program, location, params);
+}
+
+void gl4_1core_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3dv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2dv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4dv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2dv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4dv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3dv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4dv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3dv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2dv(location, count, transpose, value);
+}
+
+void gl4_1core_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform4dv(location, count, value);
+}
+
+void gl4_1core_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform3dv(location, count, value);
+}
+
+void gl4_1core_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform2dv(location, count, value);
+}
+
+void gl4_1core_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform1dv(location, count, value);
+}
+
+void gl4_1core_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform4d(location, v0, v1, v2, v3);
+}
+
+void gl4_1core_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform3d(location, v0, v1, v2);
+}
+
+void gl4_1core_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform2d(location, v0, v1);
+}
+
+void gl4_1core_glUniform1d(void *_glfuncs, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUniform1d(location, v0);
+}
+
+void gl4_1core_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsIndirect(mode, gltype, indirect);
+}
+
+void gl4_1core_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysIndirect(mode, indirect);
+}
+
+void gl4_1core_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void gl4_1core_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunci(buf, src, dst);
+}
+
+void gl4_1core_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
+}
+
+void gl4_1core_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationi(buf, mode);
+}
+
+void gl4_1core_glMinSampleShading(void *_glfuncs, GLfloat value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glMinSampleShading(value);
+}
+
+void gl4_1core_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetDoublei_v(target, index, data);
+}
+
+void gl4_1core_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetFloati_v(target, index, data);
+}
+
+void gl4_1core_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDepthRangeIndexed(index, n, f);
+}
+
+void gl4_1core_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDepthRangeArrayv(first, count, v);
+}
+
+void gl4_1core_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glScissorIndexedv(index, v);
+}
+
+void gl4_1core_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glScissorIndexed(index, left, bottom, width, height);
+}
+
+void gl4_1core_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glScissorArrayv(first, count, v);
+}
+
+void gl4_1core_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glViewportIndexedfv(index, v);
+}
+
+void gl4_1core_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glViewportIndexedf(index, x, y, w, h);
+}
+
+void gl4_1core_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glViewportArrayv(first, count, v);
+}
+
+void gl4_1core_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribLdv(index, pname, params);
+}
+
+void gl4_1core_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribLPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_1core_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4dv(index, v);
+}
+
+void gl4_1core_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3dv(index, v);
+}
+
+void gl4_1core_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2dv(index, v);
+}
+
+void gl4_1core_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1dv(index, v);
+}
+
+void gl4_1core_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4d(index, x, y, z, w);
+}
+
+void gl4_1core_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3d(index, x, y, z);
+}
+
+void gl4_1core_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2d(index, x, y);
+}
+
+void gl4_1core_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1d(index, x);
+}
+
+void gl4_1core_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
+}
+
+void gl4_1core_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glValidateProgramPipeline(pipeline);
+}
+
+void gl4_1core_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3dv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4dv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2dv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4dv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2dv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3dv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3fv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4fv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2fv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4fv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2fv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3fv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4dv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3dv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2dv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4fv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3fv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2fv(program, location, count, transpose, value);
+}
+
+void gl4_1core_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4uiv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4ui(program, location, v0, v1, v2, v3);
+}
+
+void gl4_1core_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4dv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4d(program, location, v0, v1, v2, v3);
+}
+
+void gl4_1core_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4fv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4f(program, location, v0, v1, v2, v3);
+}
+
+void gl4_1core_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4iv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4i(program, location, v0, v1, v2, v3);
+}
+
+void gl4_1core_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3uiv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3ui(program, location, v0, v1, v2);
+}
+
+void gl4_1core_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3dv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3d(program, location, v0, v1, v2);
+}
+
+void gl4_1core_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3fv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3f(program, location, v0, v1, v2);
+}
+
+void gl4_1core_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3iv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3i(program, location, v0, v1, v2);
+}
+
+void gl4_1core_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2uiv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2ui(program, location, v0, v1);
+}
+
+void gl4_1core_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2dv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2d(program, location, v0, v1);
+}
+
+void gl4_1core_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2fv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2f(program, location, v0, v1);
+}
+
+void gl4_1core_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2iv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2i(program, location, v0, v1);
+}
+
+void gl4_1core_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1uiv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1ui(program, location, v0);
+}
+
+void gl4_1core_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1dv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1d(program, location, v0);
+}
+
+void gl4_1core_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1fv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1f(program, location, v0);
+}
+
+void gl4_1core_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1iv(program, location, count, value);
+}
+
+void gl4_1core_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1i(program, location, v0);
+}
+
+void gl4_1core_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineiv(pipeline, pname, params);
+}
+
+GLboolean gl4_1core_glIsProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ return _qglfuncs->glIsProgramPipeline(pipeline);
+}
+
+void gl4_1core_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGenProgramPipelines(n, pipelines);
+}
+
+void gl4_1core_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDeleteProgramPipelines(n, pipelines);
+}
+
+void gl4_1core_glBindProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glBindProgramPipeline(pipeline);
+}
+
+void gl4_1core_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glActiveShaderProgram(pipeline, program);
+}
+
+void gl4_1core_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glUseProgramStages(pipeline, stages, program);
+}
+
+void gl4_1core_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramParameteri(program, pname, value);
+}
+
+void gl4_1core_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glProgramBinary(program, binaryFormat, binary, length);
+}
+
+void gl4_1core_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
+}
+
+void gl4_1core_glClearDepthf(void *_glfuncs, GLfloat dd)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glClearDepthf(dd);
+}
+
+void gl4_1core_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glDepthRangef(n, f);
+}
+
+void gl4_1core_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderPrecisionFormat(shadertype, precisionType, range_, precision);
+}
+
+void gl4_1core_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glShaderBinary(count, shaders, binaryFormat, binary, length);
+}
+
+void gl4_1core_glReleaseShaderCompiler(void *_glfuncs)
+{
+ QOpenGLFunctions_4_1_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_1_Core*>(_glfuncs);
+ _qglfuncs->glReleaseShaderCompiler();
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/funcs.h
new file mode 100644
index 000000000..e582a112c
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/funcs.h
@@ -0,0 +1,485 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl4_1core_funcs();
+
+void gl4_1core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_1core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl4_1core_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl4_1core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl4_1core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl4_1core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_1core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_1core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl4_1core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl4_1core_glGetError(void *_glfuncs);
+void gl4_1core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl4_1core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl4_1core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_1core_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl4_1core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl4_1core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_1core_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl4_1core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl4_1core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_1core_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl4_1core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl4_1core_glFlush(void *_glfuncs);
+void gl4_1core_glFinish(void *_glfuncs);
+void gl4_1core_glEnable(void *_glfuncs, GLenum cap);
+void gl4_1core_glDisable(void *_glfuncs, GLenum cap);
+void gl4_1core_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl4_1core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl4_1core_glStencilMask(void *_glfuncs, GLuint mask);
+void gl4_1core_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl4_1core_glClearStencil(void *_glfuncs, GLint s);
+void gl4_1core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_1core_glClear(void *_glfuncs, GLbitfield mask);
+void gl4_1core_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl4_1core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_1core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_1core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_1core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_1core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_1core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_1core_glPointSize(void *_glfuncs, GLfloat size);
+void gl4_1core_glLineWidth(void *_glfuncs, GLfloat width);
+void gl4_1core_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl4_1core_glFrontFace(void *_glfuncs, GLenum mode);
+void gl4_1core_glCullFace(void *_glfuncs, GLenum mode);
+void gl4_1core_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl4_1core_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl4_1core_glIsTexture(void *_glfuncs, GLuint texture);
+void gl4_1core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl4_1core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl4_1core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl4_1core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_1core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl4_1core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl4_1core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl4_1core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl4_1core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_1core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl4_1core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_1core_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);
+void gl4_1core_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_1core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_1core_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl4_1core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_1core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl4_1core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_1core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_1core_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);
+void gl4_1core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_1core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_1core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_1core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl4_1core_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_1core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_1core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl4_1core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_1core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_1core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl4_1core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl4_1core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl4_1core_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl4_1core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl4_1core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl4_1core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl4_1core_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl4_1core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl4_1core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl4_1core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl4_1core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl4_1core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl4_1core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1core_glEndQuery(void *_glfuncs, GLenum target);
+void gl4_1core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl4_1core_glIsQuery(void *_glfuncs, GLuint id);
+void gl4_1core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_1core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_1core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl4_1core_glValidateProgram(void *_glfuncs, GLuint program);
+void gl4_1core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_1core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_1core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_1core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_1core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_1core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_1core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl4_1core_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl4_1core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_1core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_1core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl4_1core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl4_1core_glUseProgram(void *_glfuncs, GLuint program);
+void gl4_1core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl4_1core_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl4_1core_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl4_1core_glIsProgram(void *_glfuncs, GLuint program);
+void gl4_1core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_1core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl4_1core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_1core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl4_1core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl4_1core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_1core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl4_1core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_1core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl4_1core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_1core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl4_1core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_1core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl4_1core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_1core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_1core_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_1core_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_1core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_1core_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl4_1core_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl4_1core_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl4_1core_glCreateProgram(void *_glfuncs);
+void gl4_1core_glCompileShader(void *_glfuncs, GLuint shader);
+void gl4_1core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl4_1core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_1core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl4_1core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_1core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl4_1core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl4_1core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl4_1core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl4_1core_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl4_1core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl4_1core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl4_1core_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl4_1core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl4_1core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl4_1core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_1core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl4_1core_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl4_1core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl4_1core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl4_1core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl4_1core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl4_1core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl4_1core_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl4_1core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl4_1core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl4_1core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl4_1core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl4_1core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_1core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl4_1core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl4_1core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl4_1core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl4_1core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl4_1core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl4_1core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl4_1core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl4_1core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl4_1core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_1core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl4_1core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_1core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_1core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_1core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_1core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_1core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_1core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_1core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl4_1core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl4_1core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_1core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl4_1core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl4_1core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl4_1core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_1core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1core_glEndConditionalRender(void *_glfuncs);
+void gl4_1core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl4_1core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl4_1core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl4_1core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl4_1core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_1core_glEndTransformFeedback(void *_glfuncs);
+void gl4_1core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl4_1core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl4_1core_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_1core_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_1core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl4_1core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl4_1core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl4_1core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl4_1core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl4_1core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl4_1core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl4_1core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl4_1core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl4_1core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl4_1core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl4_1core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl4_1core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl4_1core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl4_1core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl4_1core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl4_1core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_1core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_1core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl4_1core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl4_1core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl4_1core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl4_1core_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl4_1core_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl4_1core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl4_1core_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl4_1core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl4_1core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_1core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_1core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl4_1core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl4_1core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl4_1core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_1core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_1core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_1core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_1core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_1core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_1core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_1core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_1core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_1core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_1core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_1core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_1core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_1core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_1core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_1core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_1core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_1core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_1core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_1core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_1core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_1core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_1core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_1core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_1core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_1core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_1core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_1core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_1core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_1core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_1core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl4_1core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl4_1core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl4_1core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl4_1core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl4_1core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_1core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_1core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl4_1core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_1core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl4_1core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl4_1core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_1core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl4_1core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl4_1core_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl4_1core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl4_1core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl4_1core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_1core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl4_1core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+void gl4_1core_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params);
+void gl4_1core_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index);
+void gl4_1core_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id);
+void gl4_1core_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream);
+void gl4_1core_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id);
+void gl4_1core_glResumeTransformFeedback(void *_glfuncs);
+void gl4_1core_glPauseTransformFeedback(void *_glfuncs);
+GLboolean gl4_1core_glIsTransformFeedback(void *_glfuncs, GLuint id);
+void gl4_1core_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_1core_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_1core_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id);
+void gl4_1core_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values);
+void gl4_1core_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value);
+void gl4_1core_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values);
+void gl4_1core_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params);
+void gl4_1core_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value);
+void gl4_1core_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_1core_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_1core_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
+GLuint gl4_1core_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+GLint gl4_1core_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+void gl4_1core_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params);
+void gl4_1core_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1core_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1core_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1core_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1core_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_1core_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_1core_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1);
+void gl4_1core_glUniform1d(void *_glfuncs, GLint location, GLdouble v0);
+void gl4_1core_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect);
+void gl4_1core_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect);
+void gl4_1core_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+void gl4_1core_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst);
+void gl4_1core_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+void gl4_1core_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode);
+void gl4_1core_glMinSampleShading(void *_glfuncs, GLfloat value);
+void gl4_1core_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data);
+void gl4_1core_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data);
+void gl4_1core_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f);
+void gl4_1core_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v);
+void gl4_1core_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_1core_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+void gl4_1core_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v);
+void gl4_1core_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_1core_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+void gl4_1core_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v);
+void gl4_1core_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_1core_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_1core_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1core_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1core_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1core_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_1core_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_1core_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_1core_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_1core_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_1core_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_1core_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_1core_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_1core_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_1core_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_1core_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_1core_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1core_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_1core_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1core_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_1core_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_1core_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_1core_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_1core_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_1core_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1core_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_1core_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1core_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_1core_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_1core_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_1core_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_1core_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1);
+void gl4_1core_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1core_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1);
+void gl4_1core_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1core_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1);
+void gl4_1core_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_1core_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1);
+void gl4_1core_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_1core_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0);
+void gl4_1core_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_1core_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0);
+void gl4_1core_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_1core_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0);
+void gl4_1core_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_1core_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0);
+void gl4_1core_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params);
+GLboolean gl4_1core_glIsProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_1core_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines);
+void gl4_1core_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines);
+void gl4_1core_glBindProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_1core_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program);
+void gl4_1core_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program);
+void gl4_1core_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value);
+void gl4_1core_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_1core_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
+void gl4_1core_glClearDepthf(void *_glfuncs, GLfloat dd);
+void gl4_1core_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f);
+void gl4_1core_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision);
+void gl4_1core_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_1core_glReleaseShaderCompiler(void *_glfuncs);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/gl.go
new file mode 100644
index 000000000..e5579001a
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.1core/gl.go
@@ -0,0 +1,6409 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 4.1 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl4_1core_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 4.1 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 4.1 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+ FIXED = 0x140C
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ PATCHES = 0x000E
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ VERTEX_SHADER_BIT = 0x00000001
+ FRAGMENT_SHADER_BIT = 0x00000002
+ GEOMETRY_SHADER_BIT = 0x00000004
+ TESS_CONTROL_SHADER_BIT = 0x00000008
+ TESS_EVALUATION_SHADER_BIT = 0x00000010
+ ALL_SHADER_BITS = 0xFFFFFFFF
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ PROGRAM_SEPARABLE = 0x8258
+ ACTIVE_PROGRAM = 0x8259
+ PROGRAM_PIPELINE_BINDING = 0x825A
+ MAX_VIEWPORTS = 0x825B
+ VIEWPORT_SUBPIXEL_BITS = 0x825C
+ VIEWPORT_BOUNDS_RANGE = 0x825D
+ LAYER_PROVOKING_VERTEX = 0x825E
+ VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+ UNDEFINED_VERTEX = 0x8260
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ PROGRAM_BINARY_LENGTH = 0x8741
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+ PROGRAM_BINARY_FORMATS = 0x87FF
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+ MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ GEOMETRY_SHADER_INVOCATIONS = 0x887F
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+ IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ SAMPLE_SHADING = 0x8C36
+ MIN_SAMPLE_SHADING_VALUE = 0x8C37
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGB565 = 0x8D62
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ ACTIVE_SUBROUTINES = 0x8DE5
+ ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+ MAX_SUBROUTINES = 0x8DE7
+ MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+ LOW_FLOAT = 0x8DF0
+ MEDIUM_FLOAT = 0x8DF1
+ HIGH_FLOAT = 0x8DF2
+ LOW_INT = 0x8DF3
+ MEDIUM_INT = 0x8DF4
+ HIGH_INT = 0x8DF5
+ SHADER_BINARY_FORMATS = 0x8DF8
+ NUM_SHADER_BINARY_FORMATS = 0x8DF9
+ SHADER_COMPILER = 0x8DFA
+ MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+ MAX_VARYING_VECTORS = 0x8DFC
+ MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+ MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+ TRANSFORM_FEEDBACK = 0x8E22
+ TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+ TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+ TRANSFORM_FEEDBACK_BINDING = 0x8E25
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+ ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+ ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+ NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+ COMPATIBLE_SUBROUTINES = 0x8E4B
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+ MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+ MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+ FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+ MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+ MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+ MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+ MAX_VERTEX_STREAMS = 0x8E71
+ PATCH_VERTICES = 0x8E72
+ PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+ PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+ TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+ TESS_GEN_MODE = 0x8E76
+ TESS_GEN_SPACING = 0x8E77
+ TESS_GEN_VERTEX_ORDER = 0x8E78
+ TESS_GEN_POINT_MODE = 0x8E79
+ ISOLINES = 0x8E7A
+ FRACTIONAL_ODD = 0x8E7B
+ FRACTIONAL_EVEN = 0x8E7C
+ MAX_PATCH_VERTICES = 0x8E7D
+ MAX_TESS_GEN_LEVEL = 0x8E7E
+ MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+ MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+ MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+ MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+ MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+ MAX_TESS_PATCH_COMPONENTS = 0x8E84
+ MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+ MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+ TESS_EVALUATION_SHADER = 0x8E87
+ TESS_CONTROL_SHADER = 0x8E88
+ MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+ MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ DRAW_INDIRECT_BUFFER = 0x8F3F
+ DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+ DOUBLE_MAT2 = 0x8F46
+ DOUBLE_MAT3 = 0x8F47
+ DOUBLE_MAT4 = 0x8F48
+ DOUBLE_MAT2x3 = 0x8F49
+ DOUBLE_MAT2x4 = 0x8F4A
+ DOUBLE_MAT3x2 = 0x8F4B
+ DOUBLE_MAT3x4 = 0x8F4C
+ DOUBLE_MAT4x2 = 0x8F4D
+ DOUBLE_MAT4x3 = 0x8F4E
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ DOUBLE_VEC2 = 0x8FFC
+ DOUBLE_VEC3 = 0x8FFD
+ DOUBLE_VEC4 = 0x8FFE
+ TEXTURE_CUBE_MAP_ARRAY = 0x9009
+ TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+ PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
+ SAMPLER_CUBE_MAP_ARRAY = 0x900C
+ SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+ INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+ UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+ RGB10_A2UI = 0x906F
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+)
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl4_1core_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl4_1core_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl4_1core_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl4_1core_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1core_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl4_1core_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl4_1core_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl4_1core_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl4_1core_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl4_1core_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl4_1core_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl4_1core_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl4_1core_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl4_1core_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_1core_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl4_1core_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl4_1core_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl4_1core_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl4_1core_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl4_1core_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl4_1core_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl4_1core_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl4_1core_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl4_1core_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl4_1core_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl4_1core_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl4_1core_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl4_1core_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl4_1core_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_1core_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_1core_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl4_1core_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl4_1core_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl4_1core_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl4_1core_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl4_1core_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl4_1core_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl4_1core_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl4_1core_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl4_1core_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl4_1core_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl4_1core_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl4_1core_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl4_1core_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl4_1core_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl4_1core_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl4_1core_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl4_1core_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl4_1core_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl4_1core_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl4_1core_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl4_1core_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl4_1core_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl4_1core_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl4_1core_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl4_1core_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl4_1core_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl4_1core_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl4_1core_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl4_1core_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl4_1core_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl4_1core_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl4_1core_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl4_1core_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl4_1core_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl4_1core_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_1core_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_1core_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_1core_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl4_1core_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl4_1core_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl4_1core_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl4_1core_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl4_1core_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl4_1core_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl4_1core_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl4_1core_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl4_1core_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl4_1core_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl4_1core_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl4_1core_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl4_1core_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_1core_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl4_1core_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl4_1core_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl4_1core_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_1core_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_1core_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_1core_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl4_1core_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl4_1core_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_1core_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_1core_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl4_1core_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl4_1core_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl4_1core_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl4_1core_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl4_1core_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl4_1core_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl4_1core_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_1core_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl4_1core_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl4_1core_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl4_1core_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl4_1core_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_1core_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl4_1core_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_1core_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_1core_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_1core_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_1core_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_1core_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl4_1core_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_1core_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_1core_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_1core_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_1core_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_1core_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl4_1core_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl4_1core_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl4_1core_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl4_1core_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl4_1core_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl4_1core_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_1core_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl4_1core_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_1core_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl4_1core_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl4_1core_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_1core_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl4_1core_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl4_1core_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl4_1core_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl4_1core_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl4_1core_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl4_1core_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl4_1core_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl4_1core_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl4_1core_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl4_1core_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl4_1core_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl4_1core_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_1core_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl4_1core_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl4_1core_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_1core_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl4_1core_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_1core_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_1core_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl4_1core_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl4_1core_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_1core_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl4_1core_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl4_1core_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl4_1core_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl4_1core_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_1core_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_1core_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl4_1core_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl4_1core_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl4_1core_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl4_1core_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl4_1core_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_1core_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_1core_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl4_1core_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl4_1core_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl4_1core_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_1core_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_1core_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_1core_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_1core_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl4_1core_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_1core_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl4_1core_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl4_1core_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl4_1core_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl4_1core_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl4_1core_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl4_1core_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_1core_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl4_1core_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl4_1core_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl4_1core_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl4_1core_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl4_1core_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl4_1core_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl4_1core_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl4_1core_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl4_1core_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl4_1core_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl4_1core_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl4_1core_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl4_1core_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl4_1core_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl4_1core_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl4_1core_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_1core_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl4_1core_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl4_1core_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl4_1core_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_1core_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl4_1core_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl4_1core_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl4_1core_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl4_1core_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl4_1core_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl4_1core_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl4_1core_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl4_1core_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl4_1core_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_1core_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl4_1core_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl4_1core_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_1core_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_1core_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_1core_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_1core_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_1core_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_1core_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_1core_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_1core_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_1core_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_1core_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_1core_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl4_1core_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_1core_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_1core_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1core_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1core_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_1core_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_1core_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_1core_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_1core_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_1core_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_1core_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_1core_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_1core_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1core_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1core_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1core_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1core_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1core_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1core_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_1core_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_1core_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_1core_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl4_1core_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_1core_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl4_1core_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_1core_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl4_1core_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl4_1core_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl4_1core_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl4_1core_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_1core_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl4_1core_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl4_1core_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_1core_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl4_1core_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl4_1core_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_1core_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl4_1core_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl4_1core_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl4_1core_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl4_1core_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl4_1core_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_1core_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl4_1core_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl4_1core_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryIndexediv.xml
+func (gl *GL) GetQueryIndexediv(target glbase.Enum, index uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetQueryIndexediv(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQueryIndexed.xml
+func (gl *GL) EndQueryIndexed(target glbase.Enum, index uint32) {
+ C.gl4_1core_glEndQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
+func (gl *GL) BeginQueryIndexed(target glbase.Enum, index, id uint32) {
+ C.gl4_1core_glBeginQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStream.xml
+func (gl *GL) DrawTransformFeedbackStream(mode glbase.Enum, id, stream uint32) {
+ C.gl4_1core_glDrawTransformFeedbackStream(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedback.xml
+func (gl *GL) DrawTransformFeedback(mode glbase.Enum, id uint32) {
+ C.gl4_1core_glDrawTransformFeedback(gl.funcs, C.GLenum(mode), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResumeTransformFeedback.xml
+func (gl *GL) ResumeTransformFeedback() {
+ C.gl4_1core_glResumeTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPauseTransformFeedback.xml
+func (gl *GL) PauseTransformFeedback() {
+ C.gl4_1core_glPauseTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTransformFeedback.xml
+func (gl *GL) IsTransformFeedback(id uint32) bool {
+ glresult := C.gl4_1core_glIsTransformFeedback(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenTransformFeedbacks.xml
+func (gl *GL) GenTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_1core_glGenTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTransformFeedbacks.xml
+func (gl *GL) DeleteTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_1core_glDeleteTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTransformFeedback.xml
+func (gl *GL) BindTransformFeedback(target glbase.Enum, id uint32) {
+ C.gl4_1core_glBindTransformFeedback(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameterfv.xml
+func (gl *GL) PatchParameterfv(pname glbase.Enum, values []float32) {
+ C.gl4_1core_glPatchParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameteri.xml
+func (gl *GL) PatchParameteri(pname glbase.Enum, value int32) {
+ C.gl4_1core_glPatchParameteri(gl.funcs, C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramStageiv.xml
+func (gl *GL) GetProgramStageiv(program glbase.Program, shadertype, pname glbase.Enum, values []int32) {
+ C.gl4_1core_glGetProgramStageiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformSubroutineuiv.xml
+func (gl *GL) GetUniformSubroutineuiv(shadertype glbase.Enum, location glbase.Uniform, params []uint32) {
+ C.gl4_1core_glGetUniformSubroutineuiv(gl.funcs, C.GLenum(shadertype), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformSubroutinesuiv.xml
+func (gl *GL) UniformSubroutinesuiv(shadertype glbase.Enum, count int, value []uint32) {
+ C.gl4_1core_glUniformSubroutinesuiv(gl.funcs, C.GLenum(shadertype), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineName.xml
+func (gl *GL) GetActiveSubroutineName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_1core_glGetActiveSubroutineName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformName.xml
+func (gl *GL) GetActiveSubroutineUniformName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_1core_glGetActiveSubroutineUniformName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformiv.xml
+func (gl *GL) GetActiveSubroutineUniformiv(program glbase.Program, shadertype glbase.Enum, index uint32, pname glbase.Enum, values []int32) {
+ C.gl4_1core_glGetActiveSubroutineUniformiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineIndex.xml
+func (gl *GL) GetSubroutineIndex(program glbase.Program, shadertype glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_1core_glGetSubroutineIndex(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineUniformLocation.xml
+func (gl *GL) GetSubroutineUniformLocation(program glbase.Program, shadertype glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_1core_glGetSubroutineUniformLocation(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformdv.xml
+func (gl *GL) GetUniformdv(program glbase.Program, location glbase.Uniform, params []float64) {
+ C.gl4_1core_glGetUniformdv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x3dv.xml
+func (gl *GL) UniformMatrix4x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1core_glUniformMatrix4x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x2dv.xml
+func (gl *GL) UniformMatrix4x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1core_glUniformMatrix4x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x4dv.xml
+func (gl *GL) UniformMatrix3x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1core_glUniformMatrix3x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x2dv.xml
+func (gl *GL) UniformMatrix3x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1core_glUniformMatrix3x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x4dv.xml
+func (gl *GL) UniformMatrix2x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1core_glUniformMatrix2x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x3dv.xml
+func (gl *GL) UniformMatrix2x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1core_glUniformMatrix2x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4dv.xml
+func (gl *GL) UniformMatrix4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1core_glUniformMatrix4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3dv.xml
+func (gl *GL) UniformMatrix3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1core_glUniformMatrix3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2dv.xml
+func (gl *GL) UniformMatrix2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_1core_glUniformMatrix2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4dv.xml
+func (gl *GL) Uniform4dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_1core_glUniform4dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3dv.xml
+func (gl *GL) Uniform3dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_1core_glUniform3dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2dv.xml
+func (gl *GL) Uniform2dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_1core_glUniform2dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1dv.xml
+func (gl *GL) Uniform1dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_1core_glUniform1dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4d.xml
+func (gl *GL) Uniform4d(location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_1core_glUniform4d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3d.xml
+func (gl *GL) Uniform3d(location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_1core_glUniform3d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2d.xml
+func (gl *GL) Uniform2d(location glbase.Uniform, v0, v1 float64) {
+ C.gl4_1core_glUniform2d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1d.xml
+func (gl *GL) Uniform1d(location glbase.Uniform, v0 float64) {
+ C.gl4_1core_glUniform1d(gl.funcs, C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsIndirect.xml
+func (gl *GL) DrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysIndirect.xml
+func (gl *GL) DrawArraysIndirect(mode glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparatei.xml
+func (gl *GL) BlendFuncSeparatei(buf uint32, srcRGB, dstRGB, srcAlpha, dstAlpha glbase.Enum) {
+ C.gl4_1core_glBlendFuncSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(srcRGB), C.GLenum(dstRGB), C.GLenum(srcAlpha), C.GLenum(dstAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunci.xml
+func (gl *GL) BlendFunci(buf uint32, src, dst glbase.Enum) {
+ C.gl4_1core_glBlendFunci(gl.funcs, C.GLuint(buf), C.GLenum(src), C.GLenum(dst))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparatei.xml
+func (gl *GL) BlendEquationSeparatei(buf uint32, modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_1core_glBlendEquationSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationi.xml
+func (gl *GL) BlendEquationi(buf uint32, mode glbase.Enum) {
+ C.gl4_1core_glBlendEquationi(gl.funcs, C.GLuint(buf), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinSampleShading.xml
+func (gl *GL) MinSampleShading(value float32) {
+ C.gl4_1core_glMinSampleShading(gl.funcs, C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublei_v.xml
+func (gl *GL) GetDoublei_v(target glbase.Enum, index uint32, data []float64) {
+ C.gl4_1core_glGetDoublei_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloati_v.xml
+func (gl *GL) GetFloati_v(target glbase.Enum, index uint32, data []float32) {
+ C.gl4_1core_glGetFloati_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeIndexed.xml
+func (gl *GL) DepthRangeIndexed(index uint32, n, f float64) {
+ C.gl4_1core_glDepthRangeIndexed(gl.funcs, C.GLuint(index), C.GLdouble(n), C.GLdouble(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeArrayv.xml
+func (gl *GL) DepthRangeArrayv(first uint32, count int, v []float64) {
+ C.gl4_1core_glDepthRangeArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexedv.xml
+func (gl *GL) ScissorIndexedv(index uint32, v []int32) {
+ C.gl4_1core_glScissorIndexedv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexed.xml
+func (gl *GL) ScissorIndexed(index uint32, left, bottom int32, width, height int) {
+ C.gl4_1core_glScissorIndexed(gl.funcs, C.GLuint(index), C.GLint(left), C.GLint(bottom), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorArrayv.xml
+func (gl *GL) ScissorArrayv(first uint32, count int, v []int32) {
+ C.gl4_1core_glScissorArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedfv.xml
+func (gl *GL) ViewportIndexedfv(index uint32, v []float32) {
+ C.gl4_1core_glViewportIndexedfv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedf.xml
+func (gl *GL) ViewportIndexedf(index uint32, x, y, w, h float32) {
+ C.gl4_1core_glViewportIndexedf(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(w), C.GLfloat(h))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportArrayv.xml
+func (gl *GL) ViewportArrayv(first uint32, count int, v []float32) {
+ C.gl4_1core_glViewportArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribLdv.xml
+func (gl *GL) GetVertexAttribLdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ C.gl4_1core_glGetVertexAttribLdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribLPointer.xml
+func (gl *GL) VertexAttribLPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glVertexAttribLPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4dv.xml
+func (gl *GL) VertexAttribL4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1core_glVertexAttribL4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3dv.xml
+func (gl *GL) VertexAttribL3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1core_glVertexAttribL3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2dv.xml
+func (gl *GL) VertexAttribL2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_1core_glVertexAttribL2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1dv.xml
+func (gl *GL) VertexAttribL1dv(index glbase.Attrib, v []float64) {
+ C.gl4_1core_glVertexAttribL1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4d.xml
+func (gl *GL) VertexAttribL4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_1core_glVertexAttribL4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3d.xml
+func (gl *GL) VertexAttribL3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_1core_glVertexAttribL3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2d.xml
+func (gl *GL) VertexAttribL2d(index glbase.Attrib, x, y float64) {
+ C.gl4_1core_glVertexAttribL2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1d.xml
+func (gl *GL) VertexAttribL1d(index glbase.Attrib, x float64) {
+ C.gl4_1core_glVertexAttribL1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineInfoLog.xml
+func (gl *GL) GetProgramPipelineInfoLog(pipeline uint32, bufSize int32, length []int32, infoLog []byte) {
+ C.gl4_1core_glGetProgramPipelineInfoLog(gl.funcs, C.GLuint(pipeline), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgramPipeline.xml
+func (gl *GL) ValidateProgramPipeline(pipeline uint32) {
+ C.gl4_1core_glValidateProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3dv.xml
+func (gl *GL) ProgramUniformMatrix4x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix4x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4dv.xml
+func (gl *GL) ProgramUniformMatrix3x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix3x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2dv.xml
+func (gl *GL) ProgramUniformMatrix4x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix4x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4dv.xml
+func (gl *GL) ProgramUniformMatrix2x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix2x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2dv.xml
+func (gl *GL) ProgramUniformMatrix3x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix3x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3dv.xml
+func (gl *GL) ProgramUniformMatrix2x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix2x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3fv.xml
+func (gl *GL) ProgramUniformMatrix4x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix4x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4fv.xml
+func (gl *GL) ProgramUniformMatrix3x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix3x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2fv.xml
+func (gl *GL) ProgramUniformMatrix4x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix4x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4fv.xml
+func (gl *GL) ProgramUniformMatrix2x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix2x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2fv.xml
+func (gl *GL) ProgramUniformMatrix3x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix3x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3fv.xml
+func (gl *GL) ProgramUniformMatrix2x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix2x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4dv.xml
+func (gl *GL) ProgramUniformMatrix4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3dv.xml
+func (gl *GL) ProgramUniformMatrix3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2dv.xml
+func (gl *GL) ProgramUniformMatrix2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4fv.xml
+func (gl *GL) ProgramUniformMatrix4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3fv.xml
+func (gl *GL) ProgramUniformMatrix3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2fv.xml
+func (gl *GL) ProgramUniformMatrix2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniformMatrix2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4uiv.xml
+func (gl *GL) ProgramUniform4uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_1core_glProgramUniform4uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4ui.xml
+func (gl *GL) ProgramUniform4ui(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_1core_glProgramUniform4ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4dv.xml
+func (gl *GL) ProgramUniform4dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniform4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4d.xml
+func (gl *GL) ProgramUniform4d(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_1core_glProgramUniform4d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4fv.xml
+func (gl *GL) ProgramUniform4fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniform4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4f.xml
+func (gl *GL) ProgramUniform4f(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_1core_glProgramUniform4f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4iv.xml
+func (gl *GL) ProgramUniform4iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniform4iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4i.xml
+func (gl *GL) ProgramUniform4i(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_1core_glProgramUniform4i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3uiv.xml
+func (gl *GL) ProgramUniform3uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_1core_glProgramUniform3uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3ui.xml
+func (gl *GL) ProgramUniform3ui(program glbase.Program, location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_1core_glProgramUniform3ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3dv.xml
+func (gl *GL) ProgramUniform3dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniform3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3d.xml
+func (gl *GL) ProgramUniform3d(program glbase.Program, location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_1core_glProgramUniform3d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3fv.xml
+func (gl *GL) ProgramUniform3fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniform3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3f.xml
+func (gl *GL) ProgramUniform3f(program glbase.Program, location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_1core_glProgramUniform3f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3iv.xml
+func (gl *GL) ProgramUniform3iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniform3iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3i.xml
+func (gl *GL) ProgramUniform3i(program glbase.Program, location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_1core_glProgramUniform3i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2uiv.xml
+func (gl *GL) ProgramUniform2uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_1core_glProgramUniform2uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2ui.xml
+func (gl *GL) ProgramUniform2ui(program glbase.Program, location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_1core_glProgramUniform2ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2dv.xml
+func (gl *GL) ProgramUniform2dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniform2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2d.xml
+func (gl *GL) ProgramUniform2d(program glbase.Program, location glbase.Uniform, v0, v1 float64) {
+ C.gl4_1core_glProgramUniform2d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2fv.xml
+func (gl *GL) ProgramUniform2fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniform2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2f.xml
+func (gl *GL) ProgramUniform2f(program glbase.Program, location glbase.Uniform, v0, v1 float32) {
+ C.gl4_1core_glProgramUniform2f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2iv.xml
+func (gl *GL) ProgramUniform2iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_1core_glProgramUniform2iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2i.xml
+func (gl *GL) ProgramUniform2i(program glbase.Program, location glbase.Uniform, v0, v1 int32) {
+ C.gl4_1core_glProgramUniform2i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1uiv.xml
+func (gl *GL) ProgramUniform1uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_1core_glProgramUniform1uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1ui.xml
+func (gl *GL) ProgramUniform1ui(program glbase.Program, location glbase.Uniform, v0 uint32) {
+ C.gl4_1core_glProgramUniform1ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1dv.xml
+func (gl *GL) ProgramUniform1dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ C.gl4_1core_glProgramUniform1dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1d.xml
+func (gl *GL) ProgramUniform1d(program glbase.Program, location glbase.Uniform, v0 float64) {
+ C.gl4_1core_glProgramUniform1d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1fv.xml
+func (gl *GL) ProgramUniform1fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ C.gl4_1core_glProgramUniform1fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1f.xml
+func (gl *GL) ProgramUniform1f(program glbase.Program, location glbase.Uniform, v0 float32) {
+ C.gl4_1core_glProgramUniform1f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1iv.xml
+func (gl *GL) ProgramUniform1iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ C.gl4_1core_glProgramUniform1iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1i.xml
+func (gl *GL) ProgramUniform1i(program glbase.Program, location glbase.Uniform, v0 int32) {
+ C.gl4_1core_glProgramUniform1i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineiv.xml
+func (gl *GL) GetProgramPipelineiv(pipeline uint32, pname glbase.Enum, params []int32) {
+ C.gl4_1core_glGetProgramPipelineiv(gl.funcs, C.GLuint(pipeline), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgramPipeline.xml
+func (gl *GL) IsProgramPipeline(pipeline uint32) bool {
+ glresult := C.gl4_1core_glIsProgramPipeline(gl.funcs, C.GLuint(pipeline))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenProgramPipelines.xml
+func (gl *GL) GenProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_1core_glGenProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteProgramPipelines.xml
+func (gl *GL) DeleteProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_1core_glDeleteProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindProgramPipeline.xml
+func (gl *GL) BindProgramPipeline(pipeline uint32) {
+ C.gl4_1core_glBindProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveShaderProgram.xml
+func (gl *GL) ActiveShaderProgram(pipeline uint32, program glbase.Program) {
+ C.gl4_1core_glActiveShaderProgram(gl.funcs, C.GLuint(pipeline), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUseProgramStages.xml
+func (gl *GL) UseProgramStages(pipeline uint32, stages glbase.Bitfield, program glbase.Program) {
+ C.gl4_1core_glUseProgramStages(gl.funcs, C.GLuint(pipeline), C.GLbitfield(stages), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramParameteri.xml
+func (gl *GL) ProgramParameteri(program glbase.Program, pname glbase.Enum, value int32) {
+ C.gl4_1core_glProgramParameteri(gl.funcs, C.GLuint(program), C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramBinary.xml
+func (gl *GL) ProgramBinary(program glbase.Program, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glProgramBinary(gl.funcs, C.GLuint(program), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramBinary.xml
+func (gl *GL) GetProgramBinary(program glbase.Program, bufSize int32, length []int32, binaryFormat []glbase.Enum, binary interface{}) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glGetProgramBinary(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLenum)(unsafe.Pointer(&binaryFormat[0])), binary_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepthf.xml
+func (gl *GL) ClearDepthf(dd float32) {
+ C.gl4_1core_glClearDepthf(gl.funcs, C.GLfloat(dd))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangef.xml
+func (gl *GL) DepthRangef(n, f float32) {
+ C.gl4_1core_glDepthRangef(gl.funcs, C.GLfloat(n), C.GLfloat(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderPrecisionFormat.xml
+func (gl *GL) GetShaderPrecisionFormat(shadertype, precisionType glbase.Enum, range_, precision []int32) {
+ C.gl4_1core_glGetShaderPrecisionFormat(gl.funcs, C.GLenum(shadertype), C.GLenum(precisionType), (*C.GLint)(unsafe.Pointer(&range_[0])), (*C.GLint)(unsafe.Pointer(&precision[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShaderBinary.xml
+func (gl *GL) ShaderBinary(count int, shaders []glbase.Shader, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_1core_glShaderBinary(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&shaders[0])), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReleaseShaderCompiler.xml
+func (gl *GL) ReleaseShaderCompiler() {
+ C.gl4_1core_glReleaseShaderCompiler(gl.funcs)
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/funcs.cpp
new file mode 100644
index 000000000..6101e99de
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/funcs.cpp
@@ -0,0 +1,5358 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_4_2_compatibility.h>
+
+#include "funcs.h"
+
+void *gl4_2compat_funcs() {
+ QOpenGLFunctions_4_2_Compatibility* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_4_2_Compatibility>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl4_2compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl4_2compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl4_2compat_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl4_2compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl4_2compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl4_2compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl4_2compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl4_2compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl4_2compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl4_2compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl4_2compat_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl4_2compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl4_2compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl4_2compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl4_2compat_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl4_2compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl4_2compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl4_2compat_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl4_2compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl4_2compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl4_2compat_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl4_2compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl4_2compat_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl4_2compat_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl4_2compat_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl4_2compat_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl4_2compat_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl4_2compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl4_2compat_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl4_2compat_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl4_2compat_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl4_2compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl4_2compat_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl4_2compat_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl4_2compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl4_2compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl4_2compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl4_2compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl4_2compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl4_2compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl4_2compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl4_2compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl4_2compat_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl4_2compat_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl4_2compat_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl4_2compat_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl4_2compat_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl4_2compat_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl4_2compat_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl4_2compat_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl4_2compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl4_2compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl4_2compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl4_2compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl4_2compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl4_2compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl4_2compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl4_2compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl4_2compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl4_2compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl4_2compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl4_2compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl4_2compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl4_2compat_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_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl4_2compat_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_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl4_2compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl4_2compat_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl4_2compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl4_2compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl4_2compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl4_2compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl4_2compat_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_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl4_2compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl4_2compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl4_2compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl4_2compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl4_2compat_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl4_2compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl4_2compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl4_2compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl4_2compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl4_2compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl4_2compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl4_2compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl4_2compat_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl4_2compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl4_2compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl4_2compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl4_2compat_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl4_2compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl4_2compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl4_2compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl4_2compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl4_2compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl4_2compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl4_2compat_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl4_2compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl4_2compat_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl4_2compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl4_2compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl4_2compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl4_2compat_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl4_2compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl4_2compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl4_2compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl4_2compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl4_2compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl4_2compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl4_2compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl4_2compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl4_2compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl4_2compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl4_2compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl4_2compat_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl4_2compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl4_2compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl4_2compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl4_2compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl4_2compat_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl4_2compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl4_2compat_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl4_2compat_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl4_2compat_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl4_2compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl4_2compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl4_2compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl4_2compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl4_2compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl4_2compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl4_2compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl4_2compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl4_2compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl4_2compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl4_2compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl4_2compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl4_2compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl4_2compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_2compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_2compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl4_2compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl4_2compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl4_2compat_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl4_2compat_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl4_2compat_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl4_2compat_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl4_2compat_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl4_2compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl4_2compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl4_2compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl4_2compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl4_2compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl4_2compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl4_2compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl4_2compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl4_2compat_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl4_2compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl4_2compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl4_2compat_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl4_2compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl4_2compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl4_2compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl4_2compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl4_2compat_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl4_2compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl4_2compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl4_2compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl4_2compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl4_2compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl4_2compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl4_2compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl4_2compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl4_2compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl4_2compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl4_2compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl4_2compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl4_2compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl4_2compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl4_2compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl4_2compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl4_2compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl4_2compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl4_2compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl4_2compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl4_2compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl4_2compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl4_2compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl4_2compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl4_2compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl4_2compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl4_2compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl4_2compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl4_2compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl4_2compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl4_2compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl4_2compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl4_2compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl4_2compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl4_2compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl4_2compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl4_2compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl4_2compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_2compat_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl4_2compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl4_2compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl4_2compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_2compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl4_2compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl4_2compat_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl4_2compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl4_2compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl4_2compat_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl4_2compat_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl4_2compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl4_2compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl4_2compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl4_2compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl4_2compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl4_2compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl4_2compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl4_2compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl4_2compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl4_2compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl4_2compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl4_2compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl4_2compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl4_2compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl4_2compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl4_2compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl4_2compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_2compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_2compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl4_2compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl4_2compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl4_2compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl4_2compat_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl4_2compat_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl4_2compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl4_2compat_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl4_2compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl4_2compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl4_2compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl4_2compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl4_2compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl4_2compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl4_2compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl4_2compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl4_2compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl4_2compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl4_2compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl4_2compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl4_2compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl4_2compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl4_2compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl4_2compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl4_2compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl4_2compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl4_2compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl4_2compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl4_2compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl4_2compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl4_2compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl4_2compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl4_2compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl4_2compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl4_2compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl4_2compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl4_2compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl4_2compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl4_2compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl4_2compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl4_2compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl4_2compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl4_2compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl4_2compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl4_2compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl4_2compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl4_2compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl4_2compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl4_2compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl4_2compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl4_2compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl4_2compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl4_2compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl4_2compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl4_2compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl4_2compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl4_2compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl4_2compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl4_2compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl4_2compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl4_2compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl4_2compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl4_2compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl4_2compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl4_2compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl4_2compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl4_2compat_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl4_2compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl4_2compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl4_2compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl4_2compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl4_2compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
+void gl4_2compat_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryIndexediv(target, index, pname, params);
+}
+
+void gl4_2compat_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQueryIndexed(target, index);
+}
+
+void gl4_2compat_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQueryIndexed(target, index, id);
+}
+
+void gl4_2compat_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStream(mode, id, stream);
+}
+
+void gl4_2compat_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedback(mode, id);
+}
+
+void gl4_2compat_glResumeTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glResumeTransformFeedback();
+}
+
+void gl4_2compat_glPauseTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPauseTransformFeedback();
+}
+
+GLboolean gl4_2compat_glIsTransformFeedback(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTransformFeedback(id);
+}
+
+void gl4_2compat_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTransformFeedbacks(n, ids);
+}
+
+void gl4_2compat_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTransformFeedbacks(n, ids);
+}
+
+void gl4_2compat_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTransformFeedback(target, id);
+}
+
+void gl4_2compat_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPatchParameterfv(pname, values);
+}
+
+void gl4_2compat_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPatchParameteri(pname, value);
+}
+
+void gl4_2compat_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramStageiv(program, shadertype, pname, values);
+}
+
+void gl4_2compat_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformSubroutineuiv(shadertype, location, params);
+}
+
+void gl4_2compat_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformSubroutinesuiv(shadertype, count, value);
+}
+
+void gl4_2compat_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_2compat_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_2compat_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
+}
+
+GLuint gl4_2compat_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineIndex(program, shadertype, name);
+}
+
+GLint gl4_2compat_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineUniformLocation(program, shadertype, name);
+}
+
+void gl4_2compat_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformdv(program, location, params);
+}
+
+void gl4_2compat_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3dv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2dv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4dv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2dv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4dv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3dv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4dv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3dv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2dv(location, count, transpose, value);
+}
+
+void gl4_2compat_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4dv(location, count, value);
+}
+
+void gl4_2compat_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3dv(location, count, value);
+}
+
+void gl4_2compat_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2dv(location, count, value);
+}
+
+void gl4_2compat_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1dv(location, count, value);
+}
+
+void gl4_2compat_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4d(location, v0, v1, v2, v3);
+}
+
+void gl4_2compat_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3d(location, v0, v1, v2);
+}
+
+void gl4_2compat_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2d(location, v0, v1);
+}
+
+void gl4_2compat_glUniform1d(void *_glfuncs, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1d(location, v0);
+}
+
+void gl4_2compat_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsIndirect(mode, gltype, indirect);
+}
+
+void gl4_2compat_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysIndirect(mode, indirect);
+}
+
+void gl4_2compat_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void gl4_2compat_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunci(buf, src, dst);
+}
+
+void gl4_2compat_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
+}
+
+void gl4_2compat_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationi(buf, mode);
+}
+
+void gl4_2compat_glMinSampleShading(void *_glfuncs, GLfloat value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinSampleShading(value);
+}
+
+void gl4_2compat_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetDoublei_v(target, index, data);
+}
+
+void gl4_2compat_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFloati_v(target, index, data);
+}
+
+void gl4_2compat_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRangeIndexed(index, n, f);
+}
+
+void gl4_2compat_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRangeArrayv(first, count, v);
+}
+
+void gl4_2compat_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissorIndexedv(index, v);
+}
+
+void gl4_2compat_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissorIndexed(index, left, bottom, width, height);
+}
+
+void gl4_2compat_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissorArrayv(first, count, v);
+}
+
+void gl4_2compat_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewportIndexedfv(index, v);
+}
+
+void gl4_2compat_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewportIndexedf(index, x, y, w, h);
+}
+
+void gl4_2compat_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewportArrayv(first, count, v);
+}
+
+void gl4_2compat_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribLdv(index, pname, params);
+}
+
+void gl4_2compat_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribLPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_2compat_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4dv(index, v);
+}
+
+void gl4_2compat_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3dv(index, v);
+}
+
+void gl4_2compat_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2dv(index, v);
+}
+
+void gl4_2compat_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1dv(index, v);
+}
+
+void gl4_2compat_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4d(index, x, y, z, w);
+}
+
+void gl4_2compat_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3d(index, x, y, z);
+}
+
+void gl4_2compat_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2d(index, x, y);
+}
+
+void gl4_2compat_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1d(index, x);
+}
+
+void gl4_2compat_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
+}
+
+void gl4_2compat_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glValidateProgramPipeline(pipeline);
+}
+
+void gl4_2compat_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3dv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4dv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2dv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4dv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2dv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3dv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3fv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4fv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2fv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4fv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2fv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3fv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4dv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3dv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2dv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4fv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3fv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2fv(program, location, count, transpose, value);
+}
+
+void gl4_2compat_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4uiv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4ui(program, location, v0, v1, v2, v3);
+}
+
+void gl4_2compat_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4dv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4d(program, location, v0, v1, v2, v3);
+}
+
+void gl4_2compat_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4fv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4f(program, location, v0, v1, v2, v3);
+}
+
+void gl4_2compat_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4iv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4i(program, location, v0, v1, v2, v3);
+}
+
+void gl4_2compat_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3uiv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3ui(program, location, v0, v1, v2);
+}
+
+void gl4_2compat_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3dv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3d(program, location, v0, v1, v2);
+}
+
+void gl4_2compat_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3fv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3f(program, location, v0, v1, v2);
+}
+
+void gl4_2compat_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3iv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3i(program, location, v0, v1, v2);
+}
+
+void gl4_2compat_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2uiv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2ui(program, location, v0, v1);
+}
+
+void gl4_2compat_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2dv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2d(program, location, v0, v1);
+}
+
+void gl4_2compat_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2fv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2f(program, location, v0, v1);
+}
+
+void gl4_2compat_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2iv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2i(program, location, v0, v1);
+}
+
+void gl4_2compat_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1uiv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1ui(program, location, v0);
+}
+
+void gl4_2compat_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1dv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1d(program, location, v0);
+}
+
+void gl4_2compat_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1fv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1f(program, location, v0);
+}
+
+void gl4_2compat_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1iv(program, location, count, value);
+}
+
+void gl4_2compat_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1i(program, location, v0);
+}
+
+void gl4_2compat_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineiv(pipeline, pname, params);
+}
+
+GLboolean gl4_2compat_glIsProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsProgramPipeline(pipeline);
+}
+
+void gl4_2compat_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenProgramPipelines(n, pipelines);
+}
+
+void gl4_2compat_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteProgramPipelines(n, pipelines);
+}
+
+void gl4_2compat_glBindProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindProgramPipeline(pipeline);
+}
+
+void gl4_2compat_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glActiveShaderProgram(pipeline, program);
+}
+
+void gl4_2compat_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glUseProgramStages(pipeline, stages, program);
+}
+
+void gl4_2compat_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramParameteri(program, pname, value);
+}
+
+void gl4_2compat_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramBinary(program, binaryFormat, binary, length);
+}
+
+void gl4_2compat_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
+}
+
+void gl4_2compat_glClearDepthf(void *_glfuncs, GLfloat dd)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearDepthf(dd);
+}
+
+void gl4_2compat_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRangef(n, f);
+}
+
+void gl4_2compat_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderPrecisionFormat(shadertype, precisionType, range_, precision);
+}
+
+void gl4_2compat_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderBinary(count, shaders, binaryFormat, binary, length);
+}
+
+void gl4_2compat_glReleaseShaderCompiler(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glReleaseShaderCompiler();
+}
+
+void gl4_2compat_glTexStorage3D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexStorage3D(target, levels, internalFormat, width, height, depth);
+}
+
+void gl4_2compat_glTexStorage2D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexStorage2D(target, levels, internalFormat, width, height);
+}
+
+void gl4_2compat_glTexStorage1D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexStorage1D(target, levels, internalFormat, width);
+}
+
+void gl4_2compat_glMemoryBarrier(void *_glfuncs, GLbitfield barriers)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMemoryBarrier(barriers);
+}
+
+void gl4_2compat_glBindImageTexture(void *_glfuncs, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindImageTexture(unit, texture, level, layered, layer, access, format);
+}
+
+void gl4_2compat_glGetActiveAtomicCounterBufferiv(void *_glfuncs, GLuint program, GLuint bufferIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveAtomicCounterBufferiv(program, bufferIndex, pname, params);
+}
+
+void gl4_2compat_glGetInternalformativ(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInternalformativ(target, internalFormat, pname, bufSize, params);
+}
+
+void gl4_2compat_glDrawTransformFeedbackStreamInstanced(void *_glfuncs, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
+}
+
+void gl4_2compat_glDrawTransformFeedbackInstanced(void *_glfuncs, GLenum mode, GLuint id, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackInstanced(mode, id, instancecount);
+}
+
+void gl4_2compat_glDrawElementsInstancedBaseVertexBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertexBaseInstance(mode, count, gltype, indices, instancecount, basevertex, baseinstance);
+}
+
+void gl4_2compat_glDrawElementsInstancedBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseInstance(mode, count, gltype, indices, instancecount, baseinstance);
+}
+
+void gl4_2compat_glDrawArraysInstancedBaseInstance(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
+}
+
+void gl4_2compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl4_2compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl4_2compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl4_2compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl4_2compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl4_2compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl4_2compat_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl4_2compat_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl4_2compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl4_2compat_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl4_2compat_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl4_2compat_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl4_2compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl4_2compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl4_2compat_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl4_2compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl4_2compat_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl4_2compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl4_2compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl4_2compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl4_2compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl4_2compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl4_2compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl4_2compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl4_2compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl4_2compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl4_2compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl4_2compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl4_2compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl4_2compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl4_2compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl4_2compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl4_2compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl4_2compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl4_2compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl4_2compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl4_2compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl4_2compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl4_2compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl4_2compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl4_2compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl4_2compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl4_2compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl4_2compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl4_2compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl4_2compat_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl4_2compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl4_2compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl4_2compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl4_2compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl4_2compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl4_2compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl4_2compat_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl4_2compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl4_2compat_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl4_2compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl4_2compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl4_2compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl4_2compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl4_2compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl4_2compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl4_2compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl4_2compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl4_2compat_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl4_2compat_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl4_2compat_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl4_2compat_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl4_2compat_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl4_2compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl4_2compat_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl4_2compat_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl4_2compat_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl4_2compat_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl4_2compat_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl4_2compat_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl4_2compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl4_2compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl4_2compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl4_2compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl4_2compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl4_2compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl4_2compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl4_2compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl4_2compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl4_2compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl4_2compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl4_2compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl4_2compat_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl4_2compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl4_2compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl4_2compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl4_2compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl4_2compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl4_2compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl4_2compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl4_2compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl4_2compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl4_2compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl4_2compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl4_2compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl4_2compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl4_2compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl4_2compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl4_2compat_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl4_2compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl4_2compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl4_2compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl4_2compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl4_2compat_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl4_2compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl4_2compat_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl4_2compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl4_2compat_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl4_2compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl4_2compat_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl4_2compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl4_2compat_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl4_2compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl4_2compat_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl4_2compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl4_2compat_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl4_2compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl4_2compat_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl4_2compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl4_2compat_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl4_2compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl4_2compat_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl4_2compat_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl4_2compat_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl4_2compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl4_2compat_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl4_2compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl4_2compat_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl4_2compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl4_2compat_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl4_2compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl4_2compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl4_2compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl4_2compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl4_2compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl4_2compat_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl4_2compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl4_2compat_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl4_2compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl4_2compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl4_2compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl4_2compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl4_2compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl4_2compat_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl4_2compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl4_2compat_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl4_2compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl4_2compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl4_2compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl4_2compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl4_2compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl4_2compat_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl4_2compat_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl4_2compat_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl4_2compat_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl4_2compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl4_2compat_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl4_2compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl4_2compat_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl4_2compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl4_2compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl4_2compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl4_2compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl4_2compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl4_2compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl4_2compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl4_2compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl4_2compat_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl4_2compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl4_2compat_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl4_2compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl4_2compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl4_2compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl4_2compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl4_2compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl4_2compat_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl4_2compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl4_2compat_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl4_2compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl4_2compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl4_2compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl4_2compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl4_2compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl4_2compat_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl4_2compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl4_2compat_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl4_2compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl4_2compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl4_2compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl4_2compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl4_2compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl4_2compat_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl4_2compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl4_2compat_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl4_2compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl4_2compat_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl4_2compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl4_2compat_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl4_2compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl4_2compat_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl4_2compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl4_2compat_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl4_2compat_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl4_2compat_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl4_2compat_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl4_2compat_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl4_2compat_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl4_2compat_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl4_2compat_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl4_2compat_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl4_2compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl4_2compat_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl4_2compat_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl4_2compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl4_2compat_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl4_2compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl4_2compat_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl4_2compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl4_2compat_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl4_2compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl4_2compat_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl4_2compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl4_2compat_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl4_2compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl4_2compat_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl4_2compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl4_2compat_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl4_2compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl4_2compat_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl4_2compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl4_2compat_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl4_2compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl4_2compat_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl4_2compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl4_2compat_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl4_2compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl4_2compat_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl4_2compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl4_2compat_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl4_2compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl4_2compat_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl4_2compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl4_2compat_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl4_2compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl4_2compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl4_2compat_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl4_2compat_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl4_2compat_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl4_2compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl4_2compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl4_2compat_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl4_2compat_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl4_2compat_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl4_2compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl4_2compat_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl4_2compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl4_2compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl4_2compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl4_2compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl4_2compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl4_2compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl4_2compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl4_2compat_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl4_2compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl4_2compat_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl4_2compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl4_2compat_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl4_2compat_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl4_2compat_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl4_2compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl4_2compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl4_2compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl4_2compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl4_2compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl4_2compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl4_2compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl4_2compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl4_2compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl4_2compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl4_2compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl4_2compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl4_2compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl4_2compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl4_2compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl4_2compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl4_2compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl4_2compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl4_2compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl4_2compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl4_2compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl4_2compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl4_2compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl4_2compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl4_2compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl4_2compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl4_2compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl4_2compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl4_2compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl4_2compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl4_2compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl4_2compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl4_2compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl4_2compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl4_2compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl4_2compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl4_2compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl4_2compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl4_2compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl4_2compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl4_2compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl4_2compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl4_2compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl4_2compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl4_2compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl4_2compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl4_2compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl4_2compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl4_2compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl4_2compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl4_2compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl4_2compat_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl4_2compat_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl4_2compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl4_2compat_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl4_2compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl4_2compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl4_2compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl4_2compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl4_2compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl4_2compat_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl4_2compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl4_2compat_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl4_2compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl4_2compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl4_2compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl4_2compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl4_2compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl4_2compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl4_2compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl4_2compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl4_2compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl4_2compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl4_2compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl4_2compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl4_2compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl4_2compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl4_2compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl4_2compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl4_2compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl4_2compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl4_2compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl4_2compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl4_2compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl4_2compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl4_2compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl4_2compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl4_2compat_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl4_2compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl4_2compat_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
+void gl4_2compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4usv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4uiv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4ubv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4sv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4s(index, x, y, z, w);
+}
+
+void gl4_2compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4iv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gl4_2compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4dv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4d(index, x, y, z, w);
+}
+
+void gl4_2compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4bv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nusv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nuiv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nubv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nub(index, x, y, z, w);
+}
+
+void gl4_2compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nsv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Niv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nbv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3sv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3s(index, x, y, z);
+}
+
+void gl4_2compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gl4_2compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3dv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3d(index, x, y, z);
+}
+
+void gl4_2compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2sv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2s(index, x, y);
+}
+
+void gl4_2compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gl4_2compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2dv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2d(index, x, y);
+}
+
+void gl4_2compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1sv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1s(index, x);
+}
+
+void gl4_2compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gl4_2compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1dv(index, v);
+}
+
+void gl4_2compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1d(index, x);
+}
+
+void gl4_2compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4usv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ubv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4sv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4bv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4uiv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3uiv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2uiv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1uiv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4iv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3iv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2iv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1iv(index, v);
+}
+
+void gl4_2compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ui(index, x, y, z, w);
+}
+
+void gl4_2compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3ui(index, x, y, z);
+}
+
+void gl4_2compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2ui(index, x, y);
+}
+
+void gl4_2compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1ui(index, x);
+}
+
+void gl4_2compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4i(index, x, y, z, w);
+}
+
+void gl4_2compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3i(index, x, y, z);
+}
+
+void gl4_2compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2i(index, x, y);
+}
+
+void gl4_2compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x)
+{
+ QOpenGLFunctions_4_2_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1i(index, x);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/funcs.h
new file mode 100644
index 000000000..964194dcc
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/funcs.h
@@ -0,0 +1,932 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl4_2compat_funcs();
+
+void gl4_2compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_2compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl4_2compat_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl4_2compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl4_2compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_2compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl4_2compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl4_2compat_glGetError(void *_glfuncs);
+void gl4_2compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl4_2compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl4_2compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_2compat_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl4_2compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl4_2compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_2compat_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl4_2compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl4_2compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_2compat_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl4_2compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl4_2compat_glFlush(void *_glfuncs);
+void gl4_2compat_glFinish(void *_glfuncs);
+void gl4_2compat_glEnable(void *_glfuncs, GLenum cap);
+void gl4_2compat_glDisable(void *_glfuncs, GLenum cap);
+void gl4_2compat_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl4_2compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl4_2compat_glStencilMask(void *_glfuncs, GLuint mask);
+void gl4_2compat_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl4_2compat_glClearStencil(void *_glfuncs, GLint s);
+void gl4_2compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_2compat_glClear(void *_glfuncs, GLbitfield mask);
+void gl4_2compat_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl4_2compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_2compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_2compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_2compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_2compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_2compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_2compat_glPointSize(void *_glfuncs, GLfloat size);
+void gl4_2compat_glLineWidth(void *_glfuncs, GLfloat width);
+void gl4_2compat_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl4_2compat_glFrontFace(void *_glfuncs, GLenum mode);
+void gl4_2compat_glCullFace(void *_glfuncs, GLenum mode);
+void gl4_2compat_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl4_2compat_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl4_2compat_glIsTexture(void *_glfuncs, GLuint texture);
+void gl4_2compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl4_2compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl4_2compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl4_2compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_2compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl4_2compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl4_2compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl4_2compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl4_2compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_2compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl4_2compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_2compat_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);
+void gl4_2compat_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_2compat_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl4_2compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_2compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl4_2compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_2compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_2compat_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);
+void gl4_2compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_2compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_2compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_2compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl4_2compat_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_2compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_2compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl4_2compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_2compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_2compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl4_2compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl4_2compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl4_2compat_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl4_2compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl4_2compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl4_2compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl4_2compat_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl4_2compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl4_2compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl4_2compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl4_2compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl4_2compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl4_2compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2compat_glEndQuery(void *_glfuncs, GLenum target);
+void gl4_2compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl4_2compat_glIsQuery(void *_glfuncs, GLuint id);
+void gl4_2compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_2compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_2compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl4_2compat_glValidateProgram(void *_glfuncs, GLuint program);
+void gl4_2compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_2compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_2compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_2compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_2compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_2compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_2compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl4_2compat_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl4_2compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_2compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_2compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl4_2compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl4_2compat_glUseProgram(void *_glfuncs, GLuint program);
+void gl4_2compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl4_2compat_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl4_2compat_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl4_2compat_glIsProgram(void *_glfuncs, GLuint program);
+void gl4_2compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_2compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_2compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl4_2compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl4_2compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_2compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl4_2compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_2compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl4_2compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_2compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl4_2compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_2compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl4_2compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_2compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_2compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_2compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_2compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_2compat_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl4_2compat_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl4_2compat_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl4_2compat_glCreateProgram(void *_glfuncs);
+void gl4_2compat_glCompileShader(void *_glfuncs, GLuint shader);
+void gl4_2compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl4_2compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_2compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl4_2compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_2compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl4_2compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl4_2compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl4_2compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl4_2compat_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl4_2compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl4_2compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl4_2compat_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl4_2compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl4_2compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl4_2compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_2compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl4_2compat_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl4_2compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl4_2compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl4_2compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl4_2compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl4_2compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl4_2compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl4_2compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl4_2compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl4_2compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl4_2compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl4_2compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_2compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl4_2compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl4_2compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl4_2compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl4_2compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl4_2compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl4_2compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl4_2compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl4_2compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl4_2compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl4_2compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_2compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_2compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_2compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_2compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_2compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_2compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_2compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl4_2compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl4_2compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_2compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl4_2compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl4_2compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl4_2compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_2compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glEndConditionalRender(void *_glfuncs);
+void gl4_2compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl4_2compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl4_2compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl4_2compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl4_2compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_2compat_glEndTransformFeedback(void *_glfuncs);
+void gl4_2compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl4_2compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl4_2compat_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_2compat_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_2compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl4_2compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl4_2compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl4_2compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl4_2compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl4_2compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl4_2compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl4_2compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl4_2compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl4_2compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl4_2compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl4_2compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl4_2compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl4_2compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl4_2compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl4_2compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl4_2compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_2compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_2compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl4_2compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl4_2compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl4_2compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl4_2compat_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl4_2compat_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl4_2compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl4_2compat_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl4_2compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl4_2compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_2compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_2compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl4_2compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl4_2compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl4_2compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_2compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_2compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_2compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_2compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_2compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_2compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_2compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_2compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_2compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_2compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_2compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_2compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_2compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_2compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_2compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_2compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_2compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_2compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_2compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_2compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_2compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_2compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_2compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_2compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_2compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_2compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_2compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_2compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl4_2compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl4_2compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl4_2compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl4_2compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_2compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_2compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl4_2compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_2compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl4_2compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl4_2compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_2compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl4_2compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl4_2compat_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl4_2compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl4_2compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl4_2compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_2compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl4_2compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+void gl4_2compat_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params);
+void gl4_2compat_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index);
+void gl4_2compat_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id);
+void gl4_2compat_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream);
+void gl4_2compat_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id);
+void gl4_2compat_glResumeTransformFeedback(void *_glfuncs);
+void gl4_2compat_glPauseTransformFeedback(void *_glfuncs);
+GLboolean gl4_2compat_glIsTransformFeedback(void *_glfuncs, GLuint id);
+void gl4_2compat_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_2compat_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_2compat_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id);
+void gl4_2compat_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values);
+void gl4_2compat_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value);
+void gl4_2compat_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values);
+void gl4_2compat_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params);
+void gl4_2compat_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value);
+void gl4_2compat_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_2compat_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_2compat_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
+GLuint gl4_2compat_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+GLint gl4_2compat_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+void gl4_2compat_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params);
+void gl4_2compat_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2compat_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2compat_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2compat_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2compat_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_2compat_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_2compat_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1);
+void gl4_2compat_glUniform1d(void *_glfuncs, GLint location, GLdouble v0);
+void gl4_2compat_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect);
+void gl4_2compat_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect);
+void gl4_2compat_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+void gl4_2compat_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst);
+void gl4_2compat_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+void gl4_2compat_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode);
+void gl4_2compat_glMinSampleShading(void *_glfuncs, GLfloat value);
+void gl4_2compat_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data);
+void gl4_2compat_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data);
+void gl4_2compat_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f);
+void gl4_2compat_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v);
+void gl4_2compat_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_2compat_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+void gl4_2compat_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v);
+void gl4_2compat_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_2compat_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+void gl4_2compat_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v);
+void gl4_2compat_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_2compat_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2compat_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2compat_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2compat_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2compat_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_2compat_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_2compat_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_2compat_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_2compat_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_2compat_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_2compat_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2compat_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2compat_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_2compat_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_2compat_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2compat_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_2compat_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2compat_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_2compat_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_2compat_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_2compat_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_2compat_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_2compat_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2compat_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_2compat_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2compat_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_2compat_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_2compat_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_2compat_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_2compat_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1);
+void gl4_2compat_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2compat_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1);
+void gl4_2compat_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2compat_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1);
+void gl4_2compat_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_2compat_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1);
+void gl4_2compat_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_2compat_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0);
+void gl4_2compat_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2compat_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0);
+void gl4_2compat_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2compat_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0);
+void gl4_2compat_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_2compat_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0);
+void gl4_2compat_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params);
+GLboolean gl4_2compat_glIsProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_2compat_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines);
+void gl4_2compat_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines);
+void gl4_2compat_glBindProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_2compat_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program);
+void gl4_2compat_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program);
+void gl4_2compat_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value);
+void gl4_2compat_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_2compat_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
+void gl4_2compat_glClearDepthf(void *_glfuncs, GLfloat dd);
+void gl4_2compat_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f);
+void gl4_2compat_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision);
+void gl4_2compat_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_2compat_glReleaseShaderCompiler(void *_glfuncs);
+void gl4_2compat_glTexStorage3D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth);
+void gl4_2compat_glTexStorage2D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_2compat_glTexStorage1D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width);
+void gl4_2compat_glMemoryBarrier(void *_glfuncs, GLbitfield barriers);
+void gl4_2compat_glBindImageTexture(void *_glfuncs, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+void gl4_2compat_glGetActiveAtomicCounterBufferiv(void *_glfuncs, GLuint program, GLuint bufferIndex, GLenum pname, GLint* params);
+void gl4_2compat_glGetInternalformativ(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint* params);
+void gl4_2compat_glDrawTransformFeedbackStreamInstanced(void *_glfuncs, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+void gl4_2compat_glDrawTransformFeedbackInstanced(void *_glfuncs, GLenum mode, GLuint id, GLsizei instancecount);
+void gl4_2compat_glDrawElementsInstancedBaseVertexBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+void gl4_2compat_glDrawElementsInstancedBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLuint baseinstance);
+void gl4_2compat_glDrawArraysInstancedBaseInstance(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+void gl4_2compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_2compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_2compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_2compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_2compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl4_2compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl4_2compat_glPushMatrix(void *_glfuncs);
+void gl4_2compat_glPopMatrix(void *_glfuncs);
+void gl4_2compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl4_2compat_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_2compat_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_2compat_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl4_2compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_2compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_2compat_glLoadIdentity(void *_glfuncs);
+void gl4_2compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl4_2compat_glIsList(void *_glfuncs, GLuint list);
+void gl4_2compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl4_2compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl4_2compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl4_2compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl4_2compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl4_2compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl4_2compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl4_2compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl4_2compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl4_2compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl4_2compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl4_2compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl4_2compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl4_2compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl4_2compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl4_2compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl4_2compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl4_2compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_2compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl4_2compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl4_2compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl4_2compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl4_2compat_glEvalPoint1(void *_glfuncs, GLint i);
+void gl4_2compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl4_2compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl4_2compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl4_2compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl4_2compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl4_2compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl4_2compat_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl4_2compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl4_2compat_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl4_2compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl4_2compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl4_2compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl4_2compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl4_2compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl4_2compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl4_2compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl4_2compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl4_2compat_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl4_2compat_glPopAttrib(void *_glfuncs);
+void gl4_2compat_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl4_2compat_glIndexMask(void *_glfuncs, GLuint mask);
+void gl4_2compat_glClearIndex(void *_glfuncs, GLfloat c);
+void gl4_2compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_2compat_glPushName(void *_glfuncs, GLuint name);
+void gl4_2compat_glPopName(void *_glfuncs);
+void gl4_2compat_glPassThrough(void *_glfuncs, GLfloat token);
+void gl4_2compat_glLoadName(void *_glfuncs, GLuint name);
+void gl4_2compat_glInitNames(void *_glfuncs);
+GLint gl4_2compat_glRenderMode(void *_glfuncs, GLenum mode);
+void gl4_2compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl4_2compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl4_2compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl4_2compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl4_2compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl4_2compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl4_2compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl4_2compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl4_2compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_2compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_2compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_2compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_2compat_glShadeModel(void *_glfuncs, GLenum mode);
+void gl4_2compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl4_2compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl4_2compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl4_2compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl4_2compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl4_2compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl4_2compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_2compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl4_2compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_2compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_2compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl4_2compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl4_2compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl4_2compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl4_2compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_2compat_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl4_2compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_2compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_2compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_2compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl4_2compat_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_2compat_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl4_2compat_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_2compat_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_2compat_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_2compat_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_2compat_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_2compat_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_2compat_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_2compat_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl4_2compat_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_2compat_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_2compat_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl4_2compat_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl4_2compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl4_2compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl4_2compat_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl4_2compat_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl4_2compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl4_2compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl4_2compat_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl4_2compat_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl4_2compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl4_2compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl4_2compat_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl4_2compat_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glTexCoord1i(void *_glfuncs, GLint s);
+void gl4_2compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl4_2compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl4_2compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl4_2compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl4_2compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl4_2compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl4_2compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl4_2compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl4_2compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl4_2compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl4_2compat_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_2compat_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl4_2compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_2compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_2compat_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_2compat_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_2compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_2compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_2compat_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_2compat_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl4_2compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_2compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_2compat_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl4_2compat_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl4_2compat_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl4_2compat_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl4_2compat_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl4_2compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl4_2compat_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl4_2compat_glIndexs(void *_glfuncs, GLshort c);
+void gl4_2compat_glIndexiv(void *_glfuncs, const GLint* c);
+void gl4_2compat_glIndexi(void *_glfuncs, GLint c);
+void gl4_2compat_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl4_2compat_glIndexf(void *_glfuncs, GLfloat c);
+void gl4_2compat_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl4_2compat_glIndexd(void *_glfuncs, GLdouble c);
+void gl4_2compat_glEnd(void *_glfuncs);
+void gl4_2compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl4_2compat_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl4_2compat_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl4_2compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl4_2compat_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl4_2compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl4_2compat_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl4_2compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl4_2compat_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl4_2compat_glColor4iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl4_2compat_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_2compat_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl4_2compat_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl4_2compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl4_2compat_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl4_2compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl4_2compat_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl4_2compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl4_2compat_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl4_2compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl4_2compat_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl4_2compat_glColor3iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl4_2compat_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl4_2compat_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl4_2compat_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl4_2compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl4_2compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl4_2compat_glBegin(void *_glfuncs, GLenum mode);
+void gl4_2compat_glListBase(void *_glfuncs, GLuint base);
+GLuint gl4_2compat_glGenLists(void *_glfuncs, GLsizei range_);
+void gl4_2compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl4_2compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl4_2compat_glCallList(void *_glfuncs, GLuint list);
+void gl4_2compat_glEndList(void *_glfuncs);
+void gl4_2compat_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl4_2compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl4_2compat_glPopClientAttrib(void *_glfuncs);
+void gl4_2compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl4_2compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl4_2compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glEnableClientState(void *_glfuncs, GLenum array);
+void gl4_2compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glDisableClientState(void *_glfuncs, GLenum array);
+void gl4_2compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glArrayElement(void *_glfuncs, GLint i);
+void gl4_2compat_glResetMinmax(void *_glfuncs, GLenum target);
+void gl4_2compat_glResetHistogram(void *_glfuncs, GLenum target);
+void gl4_2compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl4_2compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl4_2compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl4_2compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl4_2compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl4_2compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl4_2compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl4_2compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_2compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl4_2compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_2compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl4_2compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_2compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl4_2compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl4_2compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl4_2compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl4_2compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl4_2compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_2compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl4_2compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl4_2compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_2compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_2compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl4_2compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_2compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_2compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_2compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_2compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_2compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl4_2compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_2compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl4_2compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_2compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl4_2compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_2compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl4_2compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_2compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl4_2compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_2compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl4_2compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_2compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl4_2compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_2compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl4_2compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_2compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl4_2compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_2compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl4_2compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_2compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl4_2compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_2compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl4_2compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_2compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl4_2compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_2compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl4_2compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_2compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl4_2compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_2compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl4_2compat_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_2compat_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_2compat_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_2compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_2compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_2compat_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_2compat_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl4_2compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_2compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_2compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl4_2compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl4_2compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl4_2compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl4_2compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl4_2compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl4_2compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl4_2compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl4_2compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl4_2compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl4_2compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl4_2compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl4_2compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl4_2compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl4_2compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl4_2compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl4_2compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl4_2compat_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl4_2compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl4_2compat_glFogCoordf(void *_glfuncs, GLfloat coord);
+void gl4_2compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_2compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_2compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_2compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_2compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_2compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_2compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_2compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_2compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_2compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_2compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_2compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_2compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_2compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+void gl4_2compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_2compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_2compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_2compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_2compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z);
+void gl4_2compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_2compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gl4_2compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_2compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_2compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y);
+void gl4_2compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_2compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gl4_2compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_2compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_2compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x);
+void gl4_2compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_2compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gl4_2compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_2compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_2compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_2compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_2compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_2compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_2compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_2compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_2compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_2compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_2compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_2compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_2compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_2compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+void gl4_2compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z);
+void gl4_2compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y);
+void gl4_2compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x);
+void gl4_2compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w);
+void gl4_2compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z);
+void gl4_2compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y);
+void gl4_2compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/gl.go
new file mode 100644
index 000000000..c91fbef65
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2compat/gl.go
@@ -0,0 +1,9386 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 4.2 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl4_2compat_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 4.2 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 4.2 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+ FIXED = 0x140C
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ ALL_BARRIER_BITS = 0xFFFFFFFF
+ ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
+ BUFFER_UPDATE_BARRIER_BIT = 0x00000200
+ COMMAND_BARRIER_BIT = 0x00000040
+ ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
+ FRAMEBUFFER_BARRIER_BIT = 0x00000400
+ PIXEL_BUFFER_BARRIER_BIT = 0x00000080
+ SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
+ TEXTURE_FETCH_BARRIER_BIT = 0x00000008
+ TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
+ TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
+ UNIFORM_BARRIER_BIT = 0x00000004
+ VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ PATCHES = 0x000E
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ VERTEX_SHADER_BIT = 0x00000001
+ FRAGMENT_SHADER_BIT = 0x00000002
+ GEOMETRY_SHADER_BIT = 0x00000004
+ TESS_CONTROL_SHADER_BIT = 0x00000008
+ TESS_EVALUATION_SHADER_BIT = 0x00000010
+ ALL_SHADER_BITS = 0xFFFFFFFF
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ INDEX = 0x8222
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ PROGRAM_SEPARABLE = 0x8258
+ ACTIVE_PROGRAM = 0x8259
+ PROGRAM_PIPELINE_BINDING = 0x825A
+ MAX_VIEWPORTS = 0x825B
+ VIEWPORT_SUBPIXEL_BITS = 0x825C
+ VIEWPORT_BOUNDS_RANGE = 0x825D
+ LAYER_PROVOKING_VERTEX = 0x825E
+ VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+ UNDEFINED_VERTEX = 0x8260
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ PROGRAM_BINARY_LENGTH = 0x8741
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+ PROGRAM_BINARY_FORMATS = 0x87FF
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+ MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ GEOMETRY_SHADER_INVOCATIONS = 0x887F
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+ IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_LUMINANCE_TYPE = 0x8C14
+ TEXTURE_INTENSITY_TYPE = 0x8C15
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ SAMPLE_SHADING = 0x8C36
+ MIN_SAMPLE_SHADING_VALUE = 0x8C37
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGB565 = 0x8D62
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ ACTIVE_SUBROUTINES = 0x8DE5
+ ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+ MAX_SUBROUTINES = 0x8DE7
+ MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+ LOW_FLOAT = 0x8DF0
+ MEDIUM_FLOAT = 0x8DF1
+ HIGH_FLOAT = 0x8DF2
+ LOW_INT = 0x8DF3
+ MEDIUM_INT = 0x8DF4
+ HIGH_INT = 0x8DF5
+ SHADER_BINARY_FORMATS = 0x8DF8
+ NUM_SHADER_BINARY_FORMATS = 0x8DF9
+ SHADER_COMPILER = 0x8DFA
+ MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+ MAX_VARYING_VECTORS = 0x8DFC
+ MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+ MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+ TRANSFORM_FEEDBACK = 0x8E22
+ TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+ TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+ TRANSFORM_FEEDBACK_BINDING = 0x8E25
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+ ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+ ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+ NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+ COMPATIBLE_SUBROUTINES = 0x8E4B
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+ MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+ MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+ FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+ MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+ MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+ MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+ MAX_VERTEX_STREAMS = 0x8E71
+ PATCH_VERTICES = 0x8E72
+ PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+ PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+ TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+ TESS_GEN_MODE = 0x8E76
+ TESS_GEN_SPACING = 0x8E77
+ TESS_GEN_VERTEX_ORDER = 0x8E78
+ TESS_GEN_POINT_MODE = 0x8E79
+ ISOLINES = 0x8E7A
+ FRACTIONAL_ODD = 0x8E7B
+ FRACTIONAL_EVEN = 0x8E7C
+ MAX_PATCH_VERTICES = 0x8E7D
+ MAX_TESS_GEN_LEVEL = 0x8E7E
+ MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+ MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+ MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+ MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+ MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+ MAX_TESS_PATCH_COMPONENTS = 0x8E84
+ MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+ MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+ TESS_EVALUATION_SHADER = 0x8E87
+ TESS_CONTROL_SHADER = 0x8E88
+ MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+ MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+ COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C
+ COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D
+ COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E
+ COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ MAX_IMAGE_UNITS = 0x8F38
+ MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
+ IMAGE_BINDING_NAME = 0x8F3A
+ IMAGE_BINDING_LEVEL = 0x8F3B
+ IMAGE_BINDING_LAYERED = 0x8F3C
+ IMAGE_BINDING_LAYER = 0x8F3D
+ IMAGE_BINDING_ACCESS = 0x8F3E
+ DRAW_INDIRECT_BUFFER = 0x8F3F
+ DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+ DOUBLE_MAT2 = 0x8F46
+ DOUBLE_MAT3 = 0x8F47
+ DOUBLE_MAT4 = 0x8F48
+ DOUBLE_MAT2x3 = 0x8F49
+ DOUBLE_MAT2x4 = 0x8F4A
+ DOUBLE_MAT3x2 = 0x8F4B
+ DOUBLE_MAT3x4 = 0x8F4C
+ DOUBLE_MAT4x2 = 0x8F4D
+ DOUBLE_MAT4x3 = 0x8F4E
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ DOUBLE_VEC2 = 0x8FFC
+ DOUBLE_VEC3 = 0x8FFD
+ DOUBLE_VEC4 = 0x8FFE
+ TEXTURE_CUBE_MAP_ARRAY = 0x9009
+ TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+ PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
+ SAMPLER_CUBE_MAP_ARRAY = 0x900C
+ SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+ INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+ UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+ IMAGE_1D = 0x904C
+ IMAGE_2D = 0x904D
+ IMAGE_3D = 0x904E
+ IMAGE_2D_RECT = 0x904F
+ IMAGE_CUBE = 0x9050
+ IMAGE_BUFFER = 0x9051
+ IMAGE_1D_ARRAY = 0x9052
+ IMAGE_2D_ARRAY = 0x9053
+ IMAGE_CUBE_MAP_ARRAY = 0x9054
+ IMAGE_2D_MULTISAMPLE = 0x9055
+ IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
+ INT_IMAGE_1D = 0x9057
+ INT_IMAGE_2D = 0x9058
+ INT_IMAGE_3D = 0x9059
+ INT_IMAGE_2D_RECT = 0x905A
+ INT_IMAGE_CUBE = 0x905B
+ INT_IMAGE_BUFFER = 0x905C
+ INT_IMAGE_1D_ARRAY = 0x905D
+ INT_IMAGE_2D_ARRAY = 0x905E
+ INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
+ INT_IMAGE_2D_MULTISAMPLE = 0x9060
+ INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
+ UNSIGNED_INT_IMAGE_1D = 0x9062
+ UNSIGNED_INT_IMAGE_2D = 0x9063
+ UNSIGNED_INT_IMAGE_3D = 0x9064
+ UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
+ UNSIGNED_INT_IMAGE_CUBE = 0x9066
+ UNSIGNED_INT_IMAGE_BUFFER = 0x9067
+ UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
+ UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
+ UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
+ MAX_IMAGE_SAMPLES = 0x906D
+ IMAGE_BINDING_FORMAT = 0x906E
+ RGB10_A2UI = 0x906F
+ MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
+ IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
+ IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
+ IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
+ MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
+ MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
+ MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
+ MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
+ MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
+ MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+ UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
+ UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
+ UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
+ UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
+ PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
+ PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
+ PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
+ PACK_COMPRESSED_BLOCK_SIZE = 0x912E
+ TEXTURE_IMMUTABLE_FORMAT = 0x912F
+ ATOMIC_COUNTER_BUFFER = 0x92C0
+ ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
+ ATOMIC_COUNTER_BUFFER_START = 0x92C2
+ ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
+ ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
+ MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
+ MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
+ MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
+ MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
+ MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
+ MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
+ MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
+ MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
+ MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
+ MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
+ MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
+ MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
+ MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
+ ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
+ UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
+ UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
+ MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
+ NUM_SAMPLE_COUNTS = 0x9380
+)
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl4_2compat_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl4_2compat_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl4_2compat_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl4_2compat_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl4_2compat_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl4_2compat_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl4_2compat_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl4_2compat_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl4_2compat_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl4_2compat_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl4_2compat_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_2compat_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl4_2compat_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl4_2compat_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl4_2compat_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl4_2compat_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl4_2compat_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl4_2compat_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl4_2compat_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl4_2compat_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl4_2compat_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl4_2compat_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl4_2compat_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl4_2compat_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl4_2compat_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl4_2compat_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_2compat_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl4_2compat_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl4_2compat_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl4_2compat_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl4_2compat_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl4_2compat_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl4_2compat_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl4_2compat_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl4_2compat_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl4_2compat_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl4_2compat_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl4_2compat_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl4_2compat_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl4_2compat_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl4_2compat_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl4_2compat_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl4_2compat_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl4_2compat_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl4_2compat_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl4_2compat_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl4_2compat_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl4_2compat_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl4_2compat_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl4_2compat_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl4_2compat_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl4_2compat_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl4_2compat_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl4_2compat_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl4_2compat_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl4_2compat_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl4_2compat_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl4_2compat_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl4_2compat_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl4_2compat_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_2compat_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_2compat_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_2compat_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl4_2compat_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl4_2compat_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl4_2compat_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl4_2compat_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl4_2compat_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl4_2compat_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl4_2compat_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl4_2compat_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl4_2compat_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl4_2compat_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl4_2compat_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl4_2compat_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl4_2compat_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_2compat_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl4_2compat_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl4_2compat_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl4_2compat_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_2compat_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_2compat_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_2compat_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl4_2compat_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl4_2compat_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_2compat_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_2compat_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl4_2compat_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl4_2compat_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl4_2compat_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl4_2compat_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl4_2compat_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl4_2compat_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl4_2compat_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_2compat_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl4_2compat_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl4_2compat_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl4_2compat_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl4_2compat_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_2compat_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl4_2compat_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_2compat_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_2compat_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_2compat_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_2compat_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_2compat_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl4_2compat_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_2compat_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_2compat_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_2compat_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_2compat_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_2compat_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl4_2compat_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl4_2compat_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl4_2compat_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl4_2compat_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl4_2compat_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl4_2compat_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_2compat_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl4_2compat_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_2compat_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl4_2compat_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl4_2compat_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_2compat_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl4_2compat_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl4_2compat_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl4_2compat_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl4_2compat_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl4_2compat_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl4_2compat_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl4_2compat_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl4_2compat_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl4_2compat_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl4_2compat_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl4_2compat_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl4_2compat_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_2compat_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl4_2compat_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl4_2compat_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_2compat_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl4_2compat_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_2compat_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_2compat_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl4_2compat_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl4_2compat_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_2compat_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl4_2compat_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl4_2compat_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl4_2compat_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl4_2compat_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_2compat_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_2compat_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl4_2compat_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl4_2compat_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl4_2compat_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl4_2compat_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl4_2compat_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_2compat_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_2compat_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl4_2compat_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl4_2compat_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl4_2compat_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_2compat_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_2compat_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_2compat_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_2compat_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl4_2compat_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_2compat_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl4_2compat_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl4_2compat_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl4_2compat_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl4_2compat_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl4_2compat_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl4_2compat_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_2compat_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl4_2compat_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl4_2compat_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl4_2compat_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl4_2compat_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl4_2compat_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl4_2compat_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl4_2compat_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl4_2compat_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl4_2compat_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl4_2compat_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl4_2compat_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl4_2compat_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl4_2compat_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl4_2compat_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl4_2compat_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl4_2compat_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_2compat_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl4_2compat_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl4_2compat_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl4_2compat_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_2compat_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl4_2compat_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl4_2compat_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl4_2compat_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl4_2compat_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl4_2compat_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl4_2compat_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl4_2compat_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl4_2compat_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl4_2compat_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_2compat_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl4_2compat_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl4_2compat_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_2compat_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_2compat_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_2compat_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_2compat_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_2compat_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_2compat_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_2compat_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_2compat_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_2compat_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_2compat_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_2compat_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl4_2compat_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_2compat_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_2compat_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2compat_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2compat_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_2compat_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_2compat_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_2compat_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_2compat_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_2compat_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_2compat_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_2compat_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_2compat_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2compat_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2compat_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2compat_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2compat_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2compat_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2compat_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2compat_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2compat_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_2compat_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl4_2compat_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_2compat_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl4_2compat_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_2compat_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl4_2compat_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl4_2compat_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl4_2compat_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl4_2compat_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_2compat_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl4_2compat_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_2compat_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl4_2compat_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl4_2compat_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_2compat_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl4_2compat_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl4_2compat_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl4_2compat_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl4_2compat_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl4_2compat_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_2compat_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl4_2compat_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl4_2compat_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryIndexediv.xml
+func (gl *GL) GetQueryIndexediv(target glbase.Enum, index uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetQueryIndexediv(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQueryIndexed.xml
+func (gl *GL) EndQueryIndexed(target glbase.Enum, index uint32) {
+ C.gl4_2compat_glEndQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
+func (gl *GL) BeginQueryIndexed(target glbase.Enum, index, id uint32) {
+ C.gl4_2compat_glBeginQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStream.xml
+func (gl *GL) DrawTransformFeedbackStream(mode glbase.Enum, id, stream uint32) {
+ C.gl4_2compat_glDrawTransformFeedbackStream(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedback.xml
+func (gl *GL) DrawTransformFeedback(mode glbase.Enum, id uint32) {
+ C.gl4_2compat_glDrawTransformFeedback(gl.funcs, C.GLenum(mode), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResumeTransformFeedback.xml
+func (gl *GL) ResumeTransformFeedback() {
+ C.gl4_2compat_glResumeTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPauseTransformFeedback.xml
+func (gl *GL) PauseTransformFeedback() {
+ C.gl4_2compat_glPauseTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTransformFeedback.xml
+func (gl *GL) IsTransformFeedback(id uint32) bool {
+ glresult := C.gl4_2compat_glIsTransformFeedback(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenTransformFeedbacks.xml
+func (gl *GL) GenTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_2compat_glGenTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTransformFeedbacks.xml
+func (gl *GL) DeleteTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_2compat_glDeleteTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTransformFeedback.xml
+func (gl *GL) BindTransformFeedback(target glbase.Enum, id uint32) {
+ C.gl4_2compat_glBindTransformFeedback(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameterfv.xml
+func (gl *GL) PatchParameterfv(pname glbase.Enum, values []float32) {
+ C.gl4_2compat_glPatchParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameteri.xml
+func (gl *GL) PatchParameteri(pname glbase.Enum, value int32) {
+ C.gl4_2compat_glPatchParameteri(gl.funcs, C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramStageiv.xml
+func (gl *GL) GetProgramStageiv(program glbase.Program, shadertype, pname glbase.Enum, values []int32) {
+ C.gl4_2compat_glGetProgramStageiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformSubroutineuiv.xml
+func (gl *GL) GetUniformSubroutineuiv(shadertype glbase.Enum, location glbase.Uniform, params []uint32) {
+ C.gl4_2compat_glGetUniformSubroutineuiv(gl.funcs, C.GLenum(shadertype), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformSubroutinesuiv.xml
+func (gl *GL) UniformSubroutinesuiv(shadertype glbase.Enum, count int, value []uint32) {
+ C.gl4_2compat_glUniformSubroutinesuiv(gl.funcs, C.GLenum(shadertype), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineName.xml
+func (gl *GL) GetActiveSubroutineName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_2compat_glGetActiveSubroutineName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformName.xml
+func (gl *GL) GetActiveSubroutineUniformName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_2compat_glGetActiveSubroutineUniformName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformiv.xml
+func (gl *GL) GetActiveSubroutineUniformiv(program glbase.Program, shadertype glbase.Enum, index uint32, pname glbase.Enum, values []int32) {
+ C.gl4_2compat_glGetActiveSubroutineUniformiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineIndex.xml
+func (gl *GL) GetSubroutineIndex(program glbase.Program, shadertype glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_2compat_glGetSubroutineIndex(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineUniformLocation.xml
+func (gl *GL) GetSubroutineUniformLocation(program glbase.Program, shadertype glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_2compat_glGetSubroutineUniformLocation(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformdv.xml
+func (gl *GL) GetUniformdv(program glbase.Program, location glbase.Uniform, params []float64) {
+ C.gl4_2compat_glGetUniformdv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x3dv.xml
+func (gl *GL) UniformMatrix4x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2compat_glUniformMatrix4x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x2dv.xml
+func (gl *GL) UniformMatrix4x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2compat_glUniformMatrix4x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x4dv.xml
+func (gl *GL) UniformMatrix3x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2compat_glUniformMatrix3x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x2dv.xml
+func (gl *GL) UniformMatrix3x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2compat_glUniformMatrix3x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x4dv.xml
+func (gl *GL) UniformMatrix2x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2compat_glUniformMatrix2x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x3dv.xml
+func (gl *GL) UniformMatrix2x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2compat_glUniformMatrix2x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4dv.xml
+func (gl *GL) UniformMatrix4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2compat_glUniformMatrix4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3dv.xml
+func (gl *GL) UniformMatrix3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2compat_glUniformMatrix3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2dv.xml
+func (gl *GL) UniformMatrix2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2compat_glUniformMatrix2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4dv.xml
+func (gl *GL) Uniform4dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_2compat_glUniform4dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3dv.xml
+func (gl *GL) Uniform3dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_2compat_glUniform3dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2dv.xml
+func (gl *GL) Uniform2dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_2compat_glUniform2dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1dv.xml
+func (gl *GL) Uniform1dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_2compat_glUniform1dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4d.xml
+func (gl *GL) Uniform4d(location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_2compat_glUniform4d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3d.xml
+func (gl *GL) Uniform3d(location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_2compat_glUniform3d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2d.xml
+func (gl *GL) Uniform2d(location glbase.Uniform, v0, v1 float64) {
+ C.gl4_2compat_glUniform2d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1d.xml
+func (gl *GL) Uniform1d(location glbase.Uniform, v0 float64) {
+ C.gl4_2compat_glUniform1d(gl.funcs, C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsIndirect.xml
+func (gl *GL) DrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysIndirect.xml
+func (gl *GL) DrawArraysIndirect(mode glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparatei.xml
+func (gl *GL) BlendFuncSeparatei(buf uint32, srcRGB, dstRGB, srcAlpha, dstAlpha glbase.Enum) {
+ C.gl4_2compat_glBlendFuncSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(srcRGB), C.GLenum(dstRGB), C.GLenum(srcAlpha), C.GLenum(dstAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunci.xml
+func (gl *GL) BlendFunci(buf uint32, src, dst glbase.Enum) {
+ C.gl4_2compat_glBlendFunci(gl.funcs, C.GLuint(buf), C.GLenum(src), C.GLenum(dst))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparatei.xml
+func (gl *GL) BlendEquationSeparatei(buf uint32, modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_2compat_glBlendEquationSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationi.xml
+func (gl *GL) BlendEquationi(buf uint32, mode glbase.Enum) {
+ C.gl4_2compat_glBlendEquationi(gl.funcs, C.GLuint(buf), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinSampleShading.xml
+func (gl *GL) MinSampleShading(value float32) {
+ C.gl4_2compat_glMinSampleShading(gl.funcs, C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublei_v.xml
+func (gl *GL) GetDoublei_v(target glbase.Enum, index uint32, data []float64) {
+ C.gl4_2compat_glGetDoublei_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloati_v.xml
+func (gl *GL) GetFloati_v(target glbase.Enum, index uint32, data []float32) {
+ C.gl4_2compat_glGetFloati_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeIndexed.xml
+func (gl *GL) DepthRangeIndexed(index uint32, n, f float64) {
+ C.gl4_2compat_glDepthRangeIndexed(gl.funcs, C.GLuint(index), C.GLdouble(n), C.GLdouble(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeArrayv.xml
+func (gl *GL) DepthRangeArrayv(first uint32, count int, v []float64) {
+ C.gl4_2compat_glDepthRangeArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexedv.xml
+func (gl *GL) ScissorIndexedv(index uint32, v []int32) {
+ C.gl4_2compat_glScissorIndexedv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexed.xml
+func (gl *GL) ScissorIndexed(index uint32, left, bottom int32, width, height int) {
+ C.gl4_2compat_glScissorIndexed(gl.funcs, C.GLuint(index), C.GLint(left), C.GLint(bottom), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorArrayv.xml
+func (gl *GL) ScissorArrayv(first uint32, count int, v []int32) {
+ C.gl4_2compat_glScissorArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedfv.xml
+func (gl *GL) ViewportIndexedfv(index uint32, v []float32) {
+ C.gl4_2compat_glViewportIndexedfv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedf.xml
+func (gl *GL) ViewportIndexedf(index uint32, x, y, w, h float32) {
+ C.gl4_2compat_glViewportIndexedf(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(w), C.GLfloat(h))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportArrayv.xml
+func (gl *GL) ViewportArrayv(first uint32, count int, v []float32) {
+ C.gl4_2compat_glViewportArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribLdv.xml
+func (gl *GL) GetVertexAttribLdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ C.gl4_2compat_glGetVertexAttribLdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribLPointer.xml
+func (gl *GL) VertexAttribLPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glVertexAttribLPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4dv.xml
+func (gl *GL) VertexAttribL4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttribL4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3dv.xml
+func (gl *GL) VertexAttribL3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttribL3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2dv.xml
+func (gl *GL) VertexAttribL2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttribL2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1dv.xml
+func (gl *GL) VertexAttribL1dv(index glbase.Attrib, v []float64) {
+ C.gl4_2compat_glVertexAttribL1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4d.xml
+func (gl *GL) VertexAttribL4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_2compat_glVertexAttribL4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3d.xml
+func (gl *GL) VertexAttribL3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_2compat_glVertexAttribL3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2d.xml
+func (gl *GL) VertexAttribL2d(index glbase.Attrib, x, y float64) {
+ C.gl4_2compat_glVertexAttribL2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1d.xml
+func (gl *GL) VertexAttribL1d(index glbase.Attrib, x float64) {
+ C.gl4_2compat_glVertexAttribL1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineInfoLog.xml
+func (gl *GL) GetProgramPipelineInfoLog(pipeline uint32, bufSize int32, length []int32, infoLog []byte) {
+ C.gl4_2compat_glGetProgramPipelineInfoLog(gl.funcs, C.GLuint(pipeline), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgramPipeline.xml
+func (gl *GL) ValidateProgramPipeline(pipeline uint32) {
+ C.gl4_2compat_glValidateProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3dv.xml
+func (gl *GL) ProgramUniformMatrix4x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix4x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4dv.xml
+func (gl *GL) ProgramUniformMatrix3x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix3x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2dv.xml
+func (gl *GL) ProgramUniformMatrix4x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix4x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4dv.xml
+func (gl *GL) ProgramUniformMatrix2x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix2x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2dv.xml
+func (gl *GL) ProgramUniformMatrix3x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix3x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3dv.xml
+func (gl *GL) ProgramUniformMatrix2x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix2x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3fv.xml
+func (gl *GL) ProgramUniformMatrix4x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix4x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4fv.xml
+func (gl *GL) ProgramUniformMatrix3x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix3x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2fv.xml
+func (gl *GL) ProgramUniformMatrix4x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix4x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4fv.xml
+func (gl *GL) ProgramUniformMatrix2x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix2x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2fv.xml
+func (gl *GL) ProgramUniformMatrix3x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix3x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3fv.xml
+func (gl *GL) ProgramUniformMatrix2x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix2x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4dv.xml
+func (gl *GL) ProgramUniformMatrix4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3dv.xml
+func (gl *GL) ProgramUniformMatrix3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2dv.xml
+func (gl *GL) ProgramUniformMatrix2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4fv.xml
+func (gl *GL) ProgramUniformMatrix4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3fv.xml
+func (gl *GL) ProgramUniformMatrix3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2fv.xml
+func (gl *GL) ProgramUniformMatrix2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniformMatrix2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4uiv.xml
+func (gl *GL) ProgramUniform4uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_2compat_glProgramUniform4uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4ui.xml
+func (gl *GL) ProgramUniform4ui(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_2compat_glProgramUniform4ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4dv.xml
+func (gl *GL) ProgramUniform4dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniform4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4d.xml
+func (gl *GL) ProgramUniform4d(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_2compat_glProgramUniform4d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4fv.xml
+func (gl *GL) ProgramUniform4fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniform4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4f.xml
+func (gl *GL) ProgramUniform4f(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_2compat_glProgramUniform4f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4iv.xml
+func (gl *GL) ProgramUniform4iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniform4iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4i.xml
+func (gl *GL) ProgramUniform4i(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_2compat_glProgramUniform4i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3uiv.xml
+func (gl *GL) ProgramUniform3uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_2compat_glProgramUniform3uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3ui.xml
+func (gl *GL) ProgramUniform3ui(program glbase.Program, location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_2compat_glProgramUniform3ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3dv.xml
+func (gl *GL) ProgramUniform3dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniform3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3d.xml
+func (gl *GL) ProgramUniform3d(program glbase.Program, location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_2compat_glProgramUniform3d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3fv.xml
+func (gl *GL) ProgramUniform3fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniform3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3f.xml
+func (gl *GL) ProgramUniform3f(program glbase.Program, location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_2compat_glProgramUniform3f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3iv.xml
+func (gl *GL) ProgramUniform3iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniform3iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3i.xml
+func (gl *GL) ProgramUniform3i(program glbase.Program, location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_2compat_glProgramUniform3i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2uiv.xml
+func (gl *GL) ProgramUniform2uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_2compat_glProgramUniform2uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2ui.xml
+func (gl *GL) ProgramUniform2ui(program glbase.Program, location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_2compat_glProgramUniform2ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2dv.xml
+func (gl *GL) ProgramUniform2dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniform2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2d.xml
+func (gl *GL) ProgramUniform2d(program glbase.Program, location glbase.Uniform, v0, v1 float64) {
+ C.gl4_2compat_glProgramUniform2d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2fv.xml
+func (gl *GL) ProgramUniform2fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniform2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2f.xml
+func (gl *GL) ProgramUniform2f(program glbase.Program, location glbase.Uniform, v0, v1 float32) {
+ C.gl4_2compat_glProgramUniform2f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2iv.xml
+func (gl *GL) ProgramUniform2iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2compat_glProgramUniform2iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2i.xml
+func (gl *GL) ProgramUniform2i(program glbase.Program, location glbase.Uniform, v0, v1 int32) {
+ C.gl4_2compat_glProgramUniform2i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1uiv.xml
+func (gl *GL) ProgramUniform1uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_2compat_glProgramUniform1uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1ui.xml
+func (gl *GL) ProgramUniform1ui(program glbase.Program, location glbase.Uniform, v0 uint32) {
+ C.gl4_2compat_glProgramUniform1ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1dv.xml
+func (gl *GL) ProgramUniform1dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ C.gl4_2compat_glProgramUniform1dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1d.xml
+func (gl *GL) ProgramUniform1d(program glbase.Program, location glbase.Uniform, v0 float64) {
+ C.gl4_2compat_glProgramUniform1d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1fv.xml
+func (gl *GL) ProgramUniform1fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ C.gl4_2compat_glProgramUniform1fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1f.xml
+func (gl *GL) ProgramUniform1f(program glbase.Program, location glbase.Uniform, v0 float32) {
+ C.gl4_2compat_glProgramUniform1f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1iv.xml
+func (gl *GL) ProgramUniform1iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ C.gl4_2compat_glProgramUniform1iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1i.xml
+func (gl *GL) ProgramUniform1i(program glbase.Program, location glbase.Uniform, v0 int32) {
+ C.gl4_2compat_glProgramUniform1i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineiv.xml
+func (gl *GL) GetProgramPipelineiv(pipeline uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetProgramPipelineiv(gl.funcs, C.GLuint(pipeline), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgramPipeline.xml
+func (gl *GL) IsProgramPipeline(pipeline uint32) bool {
+ glresult := C.gl4_2compat_glIsProgramPipeline(gl.funcs, C.GLuint(pipeline))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenProgramPipelines.xml
+func (gl *GL) GenProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_2compat_glGenProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteProgramPipelines.xml
+func (gl *GL) DeleteProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_2compat_glDeleteProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindProgramPipeline.xml
+func (gl *GL) BindProgramPipeline(pipeline uint32) {
+ C.gl4_2compat_glBindProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveShaderProgram.xml
+func (gl *GL) ActiveShaderProgram(pipeline uint32, program glbase.Program) {
+ C.gl4_2compat_glActiveShaderProgram(gl.funcs, C.GLuint(pipeline), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUseProgramStages.xml
+func (gl *GL) UseProgramStages(pipeline uint32, stages glbase.Bitfield, program glbase.Program) {
+ C.gl4_2compat_glUseProgramStages(gl.funcs, C.GLuint(pipeline), C.GLbitfield(stages), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramParameteri.xml
+func (gl *GL) ProgramParameteri(program glbase.Program, pname glbase.Enum, value int32) {
+ C.gl4_2compat_glProgramParameteri(gl.funcs, C.GLuint(program), C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramBinary.xml
+func (gl *GL) ProgramBinary(program glbase.Program, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glProgramBinary(gl.funcs, C.GLuint(program), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramBinary.xml
+func (gl *GL) GetProgramBinary(program glbase.Program, bufSize int32, length []int32, binaryFormat []glbase.Enum, binary interface{}) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glGetProgramBinary(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLenum)(unsafe.Pointer(&binaryFormat[0])), binary_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepthf.xml
+func (gl *GL) ClearDepthf(dd float32) {
+ C.gl4_2compat_glClearDepthf(gl.funcs, C.GLfloat(dd))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangef.xml
+func (gl *GL) DepthRangef(n, f float32) {
+ C.gl4_2compat_glDepthRangef(gl.funcs, C.GLfloat(n), C.GLfloat(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderPrecisionFormat.xml
+func (gl *GL) GetShaderPrecisionFormat(shadertype, precisionType glbase.Enum, range_, precision []int32) {
+ C.gl4_2compat_glGetShaderPrecisionFormat(gl.funcs, C.GLenum(shadertype), C.GLenum(precisionType), (*C.GLint)(unsafe.Pointer(&range_[0])), (*C.GLint)(unsafe.Pointer(&precision[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShaderBinary.xml
+func (gl *GL) ShaderBinary(count int, shaders []glbase.Shader, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glShaderBinary(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&shaders[0])), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReleaseShaderCompiler.xml
+func (gl *GL) ReleaseShaderCompiler() {
+ C.gl4_2compat_glReleaseShaderCompiler(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage3D.xml
+func (gl *GL) TexStorage3D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width, height int, depth int32) {
+ C.gl4_2compat_glTexStorage3D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage2D.xml
+func (gl *GL) TexStorage2D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_2compat_glTexStorage2D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage1D.xml
+func (gl *GL) TexStorage1D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width int) {
+ C.gl4_2compat_glTexStorage1D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMemoryBarrier.xml
+func (gl *GL) MemoryBarrier(barriers glbase.Bitfield) {
+ C.gl4_2compat_glMemoryBarrier(gl.funcs, C.GLbitfield(barriers))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindImageTexture.xml
+func (gl *GL) BindImageTexture(unit uint32, texture glbase.Texture, level int, layered bool, layer int32, access, format glbase.Enum) {
+ C.gl4_2compat_glBindImageTexture(gl.funcs, C.GLuint(unit), C.GLuint(texture), C.GLint(level), *(*C.GLboolean)(unsafe.Pointer(&layered)), C.GLint(layer), C.GLenum(access), C.GLenum(format))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAtomicCounterBufferiv.xml
+func (gl *GL) GetActiveAtomicCounterBufferiv(program glbase.Program, bufferIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetActiveAtomicCounterBufferiv(gl.funcs, C.GLuint(program), C.GLuint(bufferIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInternalformativ.xml
+func (gl *GL) GetInternalformativ(target, internalFormat, pname glbase.Enum, bufSize int32, params []int32) {
+ C.gl4_2compat_glGetInternalformativ(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStreamInstanced.xml
+func (gl *GL) DrawTransformFeedbackStreamInstanced(mode glbase.Enum, id, stream uint32, instancecount int32) {
+ C.gl4_2compat_glDrawTransformFeedbackStreamInstanced(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackInstanced.xml
+func (gl *GL) DrawTransformFeedbackInstanced(mode glbase.Enum, id uint32, instancecount int32) {
+ C.gl4_2compat_glDrawTransformFeedbackInstanced(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertexBaseInstance.xml
+func (gl *GL) DrawElementsInstancedBaseVertexBaseInstance(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32, baseinstance uint32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawElementsInstancedBaseVertexBaseInstance(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseInstance.xml
+func (gl *GL) DrawElementsInstancedBaseInstance(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32, baseinstance uint32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawElementsInstancedBaseInstance(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstancedBaseInstance.xml
+func (gl *GL) DrawArraysInstancedBaseInstance(mode glbase.Enum, first, count int, instancecount int32, baseinstance uint32) {
+ C.gl4_2compat_glDrawArraysInstancedBaseInstance(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl4_2compat_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl4_2compat_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl4_2compat_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl4_2compat_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl4_2compat_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl4_2compat_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl4_2compat_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl4_2compat_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl4_2compat_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl4_2compat_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl4_2compat_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl4_2compat_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl4_2compat_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl4_2compat_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl4_2compat_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl4_2compat_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl4_2compat_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl4_2compat_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl4_2compat_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl4_2compat_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl4_2compat_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl4_2compat_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl4_2compat_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl4_2compat_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl4_2compat_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl4_2compat_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl4_2compat_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl4_2compat_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl4_2compat_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl4_2compat_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl4_2compat_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl4_2compat_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl4_2compat_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl4_2compat_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl4_2compat_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl4_2compat_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl4_2compat_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl4_2compat_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl4_2compat_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl4_2compat_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl4_2compat_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl4_2compat_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl4_2compat_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl4_2compat_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl4_2compat_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl4_2compat_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl4_2compat_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl4_2compat_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl4_2compat_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl4_2compat_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl4_2compat_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl4_2compat_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl4_2compat_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl4_2compat_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl4_2compat_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl4_2compat_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl4_2compat_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl4_2compat_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl4_2compat_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl4_2compat_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl4_2compat_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl4_2compat_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl4_2compat_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl4_2compat_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl4_2compat_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl4_2compat_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl4_2compat_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl4_2compat_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl4_2compat_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl4_2compat_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl4_2compat_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl4_2compat_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl4_2compat_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl4_2compat_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl4_2compat_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl4_2compat_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl4_2compat_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl4_2compat_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl4_2compat_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl4_2compat_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl4_2compat_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl4_2compat_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl4_2compat_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl4_2compat_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl4_2compat_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl4_2compat_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl4_2compat_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl4_2compat_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl4_2compat_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl4_2compat_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl4_2compat_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl4_2compat_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl4_2compat_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl4_2compat_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl4_2compat_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl4_2compat_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl4_2compat_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl4_2compat_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl4_2compat_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl4_2compat_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl4_2compat_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl4_2compat_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl4_2compat_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl4_2compat_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl4_2compat_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl4_2compat_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl4_2compat_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl4_2compat_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl4_2compat_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl4_2compat_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl4_2compat_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl4_2compat_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl4_2compat_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl4_2compat_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl4_2compat_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl4_2compat_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl4_2compat_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl4_2compat_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl4_2compat_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl4_2compat_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl4_2compat_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl4_2compat_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl4_2compat_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl4_2compat_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl4_2compat_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl4_2compat_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl4_2compat_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl4_2compat_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl4_2compat_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl4_2compat_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl4_2compat_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl4_2compat_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl4_2compat_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl4_2compat_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl4_2compat_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl4_2compat_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl4_2compat_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl4_2compat_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl4_2compat_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl4_2compat_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl4_2compat_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl4_2compat_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl4_2compat_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl4_2compat_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl4_2compat_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl4_2compat_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl4_2compat_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl4_2compat_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl4_2compat_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl4_2compat_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl4_2compat_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl4_2compat_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl4_2compat_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl4_2compat_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl4_2compat_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl4_2compat_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl4_2compat_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl4_2compat_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl4_2compat_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl4_2compat_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl4_2compat_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl4_2compat_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl4_2compat_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl4_2compat_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl4_2compat_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl4_2compat_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl4_2compat_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl4_2compat_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl4_2compat_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl4_2compat_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl4_2compat_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl4_2compat_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl4_2compat_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl4_2compat_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl4_2compat_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl4_2compat_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl4_2compat_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl4_2compat_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl4_2compat_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl4_2compat_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl4_2compat_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl4_2compat_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl4_2compat_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl4_2compat_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl4_2compat_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl4_2compat_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl4_2compat_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl4_2compat_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl4_2compat_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl4_2compat_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl4_2compat_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl4_2compat_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl4_2compat_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl4_2compat_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl4_2compat_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl4_2compat_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl4_2compat_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl4_2compat_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl4_2compat_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl4_2compat_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl4_2compat_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl4_2compat_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl4_2compat_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl4_2compat_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl4_2compat_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2compat_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2compat_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl4_2compat_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl4_2compat_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl4_2compat_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl4_2compat_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl4_2compat_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl4_2compat_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl4_2compat_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl4_2compat_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl4_2compat_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl4_2compat_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl4_2compat_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl4_2compat_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl4_2compat_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl4_2compat_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl4_2compat_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl4_2compat_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl4_2compat_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl4_2compat_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl4_2compat_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl4_2compat_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl4_2compat_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl4_2compat_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl4_2compat_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl4_2compat_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl4_2compat_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl4_2compat_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl4_2compat_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl4_2compat_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl4_2compat_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl4_2compat_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl4_2compat_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl4_2compat_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl4_2compat_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl4_2compat_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl4_2compat_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl4_2compat_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl4_2compat_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl4_2compat_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl4_2compat_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl4_2compat_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl4_2compat_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl4_2compat_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl4_2compat_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl4_2compat_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl4_2compat_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2compat_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl4_2compat_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl4_2compat_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl4_2compat_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl4_2compat_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4usv.xml
+func (gl *GL) VertexAttrib4usv(index glbase.Attrib, v []uint16) {
+ C.gl4_2compat_glVertexAttrib4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4uiv.xml
+func (gl *GL) VertexAttrib4uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_2compat_glVertexAttrib4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4ubv.xml
+func (gl *GL) VertexAttrib4ubv(index glbase.Attrib, v []uint8) {
+ C.gl4_2compat_glVertexAttrib4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4sv.xml
+func (gl *GL) VertexAttrib4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4s.xml
+func (gl *GL) VertexAttrib4s(index glbase.Attrib, x, y, z, w int16) {
+ C.gl4_2compat_glVertexAttrib4s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4iv.xml
+func (gl *GL) VertexAttrib4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gl4_2compat_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4dv.xml
+func (gl *GL) VertexAttrib4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4d.xml
+func (gl *GL) VertexAttrib4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_2compat_glVertexAttrib4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4bv.xml
+func (gl *GL) VertexAttrib4bv(index glbase.Attrib, v []byte) {
+ C.gl4_2compat_glVertexAttrib4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nusv.xml
+func (gl *GL) VertexAttrib4Nusv(index glbase.Attrib, v []uint16) {
+ C.gl4_2compat_glVertexAttrib4Nusv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nuiv.xml
+func (gl *GL) VertexAttrib4Nuiv(index glbase.Attrib, v []uint32) {
+ C.gl4_2compat_glVertexAttrib4Nuiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nubv.xml
+func (gl *GL) VertexAttrib4Nubv(index glbase.Attrib, v []uint8) {
+ C.gl4_2compat_glVertexAttrib4Nubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nub.xml
+func (gl *GL) VertexAttrib4Nub(index glbase.Attrib, x, y, z, w uint8) {
+ C.gl4_2compat_glVertexAttrib4Nub(gl.funcs, C.GLuint(index), C.GLubyte(x), C.GLubyte(y), C.GLubyte(z), C.GLubyte(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nsv.xml
+func (gl *GL) VertexAttrib4Nsv(index glbase.Attrib, v []int16) {
+ C.gl4_2compat_glVertexAttrib4Nsv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Niv.xml
+func (gl *GL) VertexAttrib4Niv(index glbase.Attrib, v []int32) {
+ C.gl4_2compat_glVertexAttrib4Niv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nbv.xml
+func (gl *GL) VertexAttrib4Nbv(index glbase.Attrib, v []byte) {
+ C.gl4_2compat_glVertexAttrib4Nbv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3sv.xml
+func (gl *GL) VertexAttrib3sv(index glbase.Attrib, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib3sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3s.xml
+func (gl *GL) VertexAttrib3s(index glbase.Attrib, x, y, z int16) {
+ C.gl4_2compat_glVertexAttrib3s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gl4_2compat_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3dv.xml
+func (gl *GL) VertexAttrib3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3d.xml
+func (gl *GL) VertexAttrib3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_2compat_glVertexAttrib3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2sv.xml
+func (gl *GL) VertexAttrib2sv(index glbase.Attrib, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib2sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2s.xml
+func (gl *GL) VertexAttrib2s(index glbase.Attrib, x, y int16) {
+ C.gl4_2compat_glVertexAttrib2s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gl4_2compat_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2dv.xml
+func (gl *GL) VertexAttrib2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttrib2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2d.xml
+func (gl *GL) VertexAttrib2d(index glbase.Attrib, x, y float64) {
+ C.gl4_2compat_glVertexAttrib2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1sv.xml
+func (gl *GL) VertexAttrib1sv(index glbase.Attrib, v []int16) {
+ C.gl4_2compat_glVertexAttrib1sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1s.xml
+func (gl *GL) VertexAttrib1s(index glbase.Attrib, x int16) {
+ C.gl4_2compat_glVertexAttrib1s(gl.funcs, C.GLuint(index), C.GLshort(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, v []float32) {
+ C.gl4_2compat_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gl4_2compat_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1dv.xml
+func (gl *GL) VertexAttrib1dv(index glbase.Attrib, v []float64) {
+ C.gl4_2compat_glVertexAttrib1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1d.xml
+func (gl *GL) VertexAttrib1d(index glbase.Attrib, x float64) {
+ C.gl4_2compat_glVertexAttrib1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4usv.xml
+func (gl *GL) VertexAttribI4usv(index glbase.Attrib, v []uint16) {
+ C.gl4_2compat_glVertexAttribI4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4ubv.xml
+func (gl *GL) VertexAttribI4ubv(index glbase.Attrib, v []uint8) {
+ C.gl4_2compat_glVertexAttribI4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4sv.xml
+func (gl *GL) VertexAttribI4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttribI4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4bv.xml
+func (gl *GL) VertexAttribI4bv(index glbase.Attrib, v []byte) {
+ C.gl4_2compat_glVertexAttribI4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4uiv.xml
+func (gl *GL) VertexAttribI4uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_2compat_glVertexAttribI4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3uiv.xml
+func (gl *GL) VertexAttribI3uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_2compat_glVertexAttribI3uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2uiv.xml
+func (gl *GL) VertexAttribI2uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_2compat_glVertexAttribI2uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1uiv.xml
+func (gl *GL) VertexAttribI1uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_2compat_glVertexAttribI1uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4iv.xml
+func (gl *GL) VertexAttribI4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttribI4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3iv.xml
+func (gl *GL) VertexAttribI3iv(index glbase.Attrib, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttribI3iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2iv.xml
+func (gl *GL) VertexAttribI2iv(index glbase.Attrib, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2compat_glVertexAttribI2iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1iv.xml
+func (gl *GL) VertexAttribI1iv(index glbase.Attrib, v []int32) {
+ C.gl4_2compat_glVertexAttribI1iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4ui.xml
+func (gl *GL) VertexAttribI4ui(index glbase.Attrib, x, y, z, w uint32) {
+ C.gl4_2compat_glVertexAttribI4ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z), C.GLuint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3ui.xml
+func (gl *GL) VertexAttribI3ui(index glbase.Attrib, x, y, z uint32) {
+ C.gl4_2compat_glVertexAttribI3ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2ui.xml
+func (gl *GL) VertexAttribI2ui(index glbase.Attrib, x, y uint32) {
+ C.gl4_2compat_glVertexAttribI2ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1ui.xml
+func (gl *GL) VertexAttribI1ui(index glbase.Attrib, x uint32) {
+ C.gl4_2compat_glVertexAttribI1ui(gl.funcs, C.GLuint(index), C.GLuint(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4i.xml
+func (gl *GL) VertexAttribI4i(index glbase.Attrib, x, y, z, w int) {
+ C.gl4_2compat_glVertexAttribI4i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3i.xml
+func (gl *GL) VertexAttribI3i(index glbase.Attrib, x, y, z int) {
+ C.gl4_2compat_glVertexAttribI3i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2i.xml
+func (gl *GL) VertexAttribI2i(index glbase.Attrib, x, y int) {
+ C.gl4_2compat_glVertexAttribI2i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1i.xml
+func (gl *GL) VertexAttribI1i(index glbase.Attrib, x int) {
+ C.gl4_2compat_glVertexAttribI1i(gl.funcs, C.GLuint(index), C.GLint(x))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/funcs.cpp
new file mode 100644
index 000000000..567e39b30
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/funcs.cpp
@@ -0,0 +1,2748 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_4_2_core.h>
+
+#include "funcs.h"
+
+void *gl4_2core_funcs() {
+ QOpenGLFunctions_4_2_Core* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_4_2_Core>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl4_2core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl4_2core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl4_2core_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl4_2core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl4_2core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl4_2core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl4_2core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl4_2core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl4_2core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl4_2core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl4_2core_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl4_2core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl4_2core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl4_2core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl4_2core_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl4_2core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl4_2core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl4_2core_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl4_2core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl4_2core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl4_2core_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl4_2core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl4_2core_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl4_2core_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl4_2core_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl4_2core_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl4_2core_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl4_2core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl4_2core_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl4_2core_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl4_2core_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl4_2core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl4_2core_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl4_2core_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl4_2core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl4_2core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl4_2core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl4_2core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl4_2core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl4_2core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl4_2core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl4_2core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl4_2core_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl4_2core_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl4_2core_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl4_2core_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl4_2core_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl4_2core_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl4_2core_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl4_2core_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl4_2core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl4_2core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl4_2core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl4_2core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl4_2core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl4_2core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl4_2core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl4_2core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl4_2core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl4_2core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl4_2core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl4_2core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl4_2core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl4_2core_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_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl4_2core_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_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl4_2core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl4_2core_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl4_2core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl4_2core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl4_2core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl4_2core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl4_2core_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_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl4_2core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl4_2core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl4_2core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl4_2core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl4_2core_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl4_2core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl4_2core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl4_2core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl4_2core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl4_2core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl4_2core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl4_2core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl4_2core_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl4_2core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl4_2core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl4_2core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl4_2core_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl4_2core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl4_2core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl4_2core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl4_2core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl4_2core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl4_2core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl4_2core_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl4_2core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl4_2core_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl4_2core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl4_2core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl4_2core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl4_2core_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl4_2core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl4_2core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl4_2core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl4_2core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl4_2core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl4_2core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl4_2core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl4_2core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl4_2core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl4_2core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl4_2core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl4_2core_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl4_2core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl4_2core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl4_2core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl4_2core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl4_2core_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl4_2core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl4_2core_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl4_2core_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl4_2core_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl4_2core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl4_2core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl4_2core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl4_2core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl4_2core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl4_2core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl4_2core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl4_2core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl4_2core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl4_2core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl4_2core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl4_2core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl4_2core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl4_2core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_2core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_2core_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl4_2core_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl4_2core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl4_2core_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl4_2core_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl4_2core_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl4_2core_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl4_2core_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl4_2core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl4_2core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl4_2core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl4_2core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl4_2core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl4_2core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl4_2core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl4_2core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl4_2core_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl4_2core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl4_2core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl4_2core_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl4_2core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl4_2core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl4_2core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl4_2core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl4_2core_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl4_2core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl4_2core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl4_2core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl4_2core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl4_2core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl4_2core_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl4_2core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl4_2core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl4_2core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl4_2core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl4_2core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl4_2core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl4_2core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl4_2core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl4_2core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl4_2core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl4_2core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl4_2core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl4_2core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl4_2core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl4_2core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl4_2core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl4_2core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl4_2core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl4_2core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl4_2core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl4_2core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl4_2core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl4_2core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl4_2core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl4_2core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl4_2core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl4_2core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl4_2core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl4_2core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl4_2core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl4_2core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl4_2core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_2core_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl4_2core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl4_2core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl4_2core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_2core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl4_2core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl4_2core_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl4_2core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl4_2core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl4_2core_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl4_2core_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl4_2core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl4_2core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl4_2core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl4_2core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl4_2core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl4_2core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl4_2core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl4_2core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl4_2core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl4_2core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl4_2core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl4_2core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl4_2core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl4_2core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl4_2core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl4_2core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl4_2core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_2core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_2core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl4_2core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl4_2core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl4_2core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl4_2core_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl4_2core_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl4_2core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl4_2core_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl4_2core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl4_2core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl4_2core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl4_2core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl4_2core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl4_2core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl4_2core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl4_2core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl4_2core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl4_2core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl4_2core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl4_2core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl4_2core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl4_2core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl4_2core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl4_2core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl4_2core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl4_2core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl4_2core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl4_2core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl4_2core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl4_2core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl4_2core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl4_2core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl4_2core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl4_2core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl4_2core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl4_2core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl4_2core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl4_2core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl4_2core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl4_2core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl4_2core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl4_2core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl4_2core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl4_2core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl4_2core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl4_2core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl4_2core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl4_2core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl4_2core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl4_2core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl4_2core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl4_2core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl4_2core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl4_2core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl4_2core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl4_2core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl4_2core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl4_2core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl4_2core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl4_2core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl4_2core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl4_2core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl4_2core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl4_2core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl4_2core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl4_2core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl4_2core_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl4_2core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl4_2core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl4_2core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl4_2core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl4_2core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
+void gl4_2core_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryIndexediv(target, index, pname, params);
+}
+
+void gl4_2core_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glEndQueryIndexed(target, index);
+}
+
+void gl4_2core_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBeginQueryIndexed(target, index, id);
+}
+
+void gl4_2core_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStream(mode, id, stream);
+}
+
+void gl4_2core_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedback(mode, id);
+}
+
+void gl4_2core_glResumeTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glResumeTransformFeedback();
+}
+
+void gl4_2core_glPauseTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPauseTransformFeedback();
+}
+
+GLboolean gl4_2core_glIsTransformFeedback(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsTransformFeedback(id);
+}
+
+void gl4_2core_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenTransformFeedbacks(n, ids);
+}
+
+void gl4_2core_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTransformFeedbacks(n, ids);
+}
+
+void gl4_2core_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindTransformFeedback(target, id);
+}
+
+void gl4_2core_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPatchParameterfv(pname, values);
+}
+
+void gl4_2core_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glPatchParameteri(pname, value);
+}
+
+void gl4_2core_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramStageiv(program, shadertype, pname, values);
+}
+
+void gl4_2core_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformSubroutineuiv(shadertype, location, params);
+}
+
+void gl4_2core_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformSubroutinesuiv(shadertype, count, value);
+}
+
+void gl4_2core_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_2core_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_2core_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
+}
+
+GLuint gl4_2core_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineIndex(program, shadertype, name);
+}
+
+GLint gl4_2core_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineUniformLocation(program, shadertype, name);
+}
+
+void gl4_2core_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformdv(program, location, params);
+}
+
+void gl4_2core_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3dv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2dv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4dv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2dv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4dv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3dv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4dv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3dv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2dv(location, count, transpose, value);
+}
+
+void gl4_2core_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4dv(location, count, value);
+}
+
+void gl4_2core_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3dv(location, count, value);
+}
+
+void gl4_2core_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2dv(location, count, value);
+}
+
+void gl4_2core_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1dv(location, count, value);
+}
+
+void gl4_2core_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform4d(location, v0, v1, v2, v3);
+}
+
+void gl4_2core_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform3d(location, v0, v1, v2);
+}
+
+void gl4_2core_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform2d(location, v0, v1);
+}
+
+void gl4_2core_glUniform1d(void *_glfuncs, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUniform1d(location, v0);
+}
+
+void gl4_2core_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsIndirect(mode, gltype, indirect);
+}
+
+void gl4_2core_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysIndirect(mode, indirect);
+}
+
+void gl4_2core_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void gl4_2core_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunci(buf, src, dst);
+}
+
+void gl4_2core_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
+}
+
+void gl4_2core_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationi(buf, mode);
+}
+
+void gl4_2core_glMinSampleShading(void *_glfuncs, GLfloat value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMinSampleShading(value);
+}
+
+void gl4_2core_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetDoublei_v(target, index, data);
+}
+
+void gl4_2core_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetFloati_v(target, index, data);
+}
+
+void gl4_2core_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDepthRangeIndexed(index, n, f);
+}
+
+void gl4_2core_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDepthRangeArrayv(first, count, v);
+}
+
+void gl4_2core_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glScissorIndexedv(index, v);
+}
+
+void gl4_2core_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glScissorIndexed(index, left, bottom, width, height);
+}
+
+void gl4_2core_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glScissorArrayv(first, count, v);
+}
+
+void gl4_2core_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glViewportIndexedfv(index, v);
+}
+
+void gl4_2core_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glViewportIndexedf(index, x, y, w, h);
+}
+
+void gl4_2core_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glViewportArrayv(first, count, v);
+}
+
+void gl4_2core_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribLdv(index, pname, params);
+}
+
+void gl4_2core_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribLPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_2core_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4dv(index, v);
+}
+
+void gl4_2core_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3dv(index, v);
+}
+
+void gl4_2core_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2dv(index, v);
+}
+
+void gl4_2core_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1dv(index, v);
+}
+
+void gl4_2core_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4d(index, x, y, z, w);
+}
+
+void gl4_2core_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3d(index, x, y, z);
+}
+
+void gl4_2core_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2d(index, x, y);
+}
+
+void gl4_2core_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1d(index, x);
+}
+
+void gl4_2core_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
+}
+
+void gl4_2core_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glValidateProgramPipeline(pipeline);
+}
+
+void gl4_2core_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3dv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4dv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2dv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4dv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2dv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3dv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3fv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4fv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2fv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4fv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2fv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3fv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4dv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3dv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2dv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4fv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3fv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2fv(program, location, count, transpose, value);
+}
+
+void gl4_2core_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4uiv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4ui(program, location, v0, v1, v2, v3);
+}
+
+void gl4_2core_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4dv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4d(program, location, v0, v1, v2, v3);
+}
+
+void gl4_2core_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4fv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4f(program, location, v0, v1, v2, v3);
+}
+
+void gl4_2core_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4iv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4i(program, location, v0, v1, v2, v3);
+}
+
+void gl4_2core_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3uiv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3ui(program, location, v0, v1, v2);
+}
+
+void gl4_2core_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3dv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3d(program, location, v0, v1, v2);
+}
+
+void gl4_2core_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3fv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3f(program, location, v0, v1, v2);
+}
+
+void gl4_2core_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3iv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3i(program, location, v0, v1, v2);
+}
+
+void gl4_2core_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2uiv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2ui(program, location, v0, v1);
+}
+
+void gl4_2core_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2dv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2d(program, location, v0, v1);
+}
+
+void gl4_2core_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2fv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2f(program, location, v0, v1);
+}
+
+void gl4_2core_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2iv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2i(program, location, v0, v1);
+}
+
+void gl4_2core_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1uiv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1ui(program, location, v0);
+}
+
+void gl4_2core_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1dv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1d(program, location, v0);
+}
+
+void gl4_2core_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1fv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1f(program, location, v0);
+}
+
+void gl4_2core_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1iv(program, location, count, value);
+}
+
+void gl4_2core_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1i(program, location, v0);
+}
+
+void gl4_2core_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineiv(pipeline, pname, params);
+}
+
+GLboolean gl4_2core_glIsProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ return _qglfuncs->glIsProgramPipeline(pipeline);
+}
+
+void gl4_2core_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGenProgramPipelines(n, pipelines);
+}
+
+void gl4_2core_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDeleteProgramPipelines(n, pipelines);
+}
+
+void gl4_2core_glBindProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindProgramPipeline(pipeline);
+}
+
+void gl4_2core_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glActiveShaderProgram(pipeline, program);
+}
+
+void gl4_2core_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glUseProgramStages(pipeline, stages, program);
+}
+
+void gl4_2core_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramParameteri(program, pname, value);
+}
+
+void gl4_2core_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glProgramBinary(program, binaryFormat, binary, length);
+}
+
+void gl4_2core_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
+}
+
+void gl4_2core_glClearDepthf(void *_glfuncs, GLfloat dd)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glClearDepthf(dd);
+}
+
+void gl4_2core_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDepthRangef(n, f);
+}
+
+void gl4_2core_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderPrecisionFormat(shadertype, precisionType, range_, precision);
+}
+
+void gl4_2core_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glShaderBinary(count, shaders, binaryFormat, binary, length);
+}
+
+void gl4_2core_glReleaseShaderCompiler(void *_glfuncs)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glReleaseShaderCompiler();
+}
+
+void gl4_2core_glTexStorage3D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexStorage3D(target, levels, internalFormat, width, height, depth);
+}
+
+void gl4_2core_glTexStorage2D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexStorage2D(target, levels, internalFormat, width, height);
+}
+
+void gl4_2core_glTexStorage1D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glTexStorage1D(target, levels, internalFormat, width);
+}
+
+void gl4_2core_glMemoryBarrier(void *_glfuncs, GLbitfield barriers)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glMemoryBarrier(barriers);
+}
+
+void gl4_2core_glBindImageTexture(void *_glfuncs, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glBindImageTexture(unit, texture, level, layered, layer, access, format);
+}
+
+void gl4_2core_glGetActiveAtomicCounterBufferiv(void *_glfuncs, GLuint program, GLuint bufferIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveAtomicCounterBufferiv(program, bufferIndex, pname, params);
+}
+
+void gl4_2core_glGetInternalformativ(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint* params)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glGetInternalformativ(target, internalFormat, pname, bufSize, params);
+}
+
+void gl4_2core_glDrawTransformFeedbackStreamInstanced(void *_glfuncs, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
+}
+
+void gl4_2core_glDrawTransformFeedbackInstanced(void *_glfuncs, GLenum mode, GLuint id, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackInstanced(mode, id, instancecount);
+}
+
+void gl4_2core_glDrawElementsInstancedBaseVertexBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertexBaseInstance(mode, count, gltype, indices, instancecount, basevertex, baseinstance);
+}
+
+void gl4_2core_glDrawElementsInstancedBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseInstance(mode, count, gltype, indices, instancecount, baseinstance);
+}
+
+void gl4_2core_glDrawArraysInstancedBaseInstance(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_2_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_2_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/funcs.h
new file mode 100644
index 000000000..969f03fdd
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/funcs.h
@@ -0,0 +1,497 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl4_2core_funcs();
+
+void gl4_2core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_2core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl4_2core_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl4_2core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl4_2core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl4_2core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_2core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_2core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl4_2core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl4_2core_glGetError(void *_glfuncs);
+void gl4_2core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl4_2core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl4_2core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_2core_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl4_2core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl4_2core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_2core_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl4_2core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl4_2core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_2core_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl4_2core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl4_2core_glFlush(void *_glfuncs);
+void gl4_2core_glFinish(void *_glfuncs);
+void gl4_2core_glEnable(void *_glfuncs, GLenum cap);
+void gl4_2core_glDisable(void *_glfuncs, GLenum cap);
+void gl4_2core_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl4_2core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl4_2core_glStencilMask(void *_glfuncs, GLuint mask);
+void gl4_2core_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl4_2core_glClearStencil(void *_glfuncs, GLint s);
+void gl4_2core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_2core_glClear(void *_glfuncs, GLbitfield mask);
+void gl4_2core_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl4_2core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_2core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_2core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_2core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_2core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_2core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_2core_glPointSize(void *_glfuncs, GLfloat size);
+void gl4_2core_glLineWidth(void *_glfuncs, GLfloat width);
+void gl4_2core_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl4_2core_glFrontFace(void *_glfuncs, GLenum mode);
+void gl4_2core_glCullFace(void *_glfuncs, GLenum mode);
+void gl4_2core_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl4_2core_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl4_2core_glIsTexture(void *_glfuncs, GLuint texture);
+void gl4_2core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl4_2core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl4_2core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl4_2core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_2core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl4_2core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl4_2core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl4_2core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl4_2core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_2core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl4_2core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_2core_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);
+void gl4_2core_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_2core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_2core_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl4_2core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_2core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl4_2core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_2core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_2core_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);
+void gl4_2core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_2core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_2core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_2core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl4_2core_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_2core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_2core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl4_2core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_2core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_2core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl4_2core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl4_2core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl4_2core_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl4_2core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl4_2core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl4_2core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl4_2core_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl4_2core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl4_2core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl4_2core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl4_2core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl4_2core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl4_2core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2core_glEndQuery(void *_glfuncs, GLenum target);
+void gl4_2core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl4_2core_glIsQuery(void *_glfuncs, GLuint id);
+void gl4_2core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_2core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_2core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl4_2core_glValidateProgram(void *_glfuncs, GLuint program);
+void gl4_2core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_2core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_2core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_2core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_2core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_2core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_2core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl4_2core_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl4_2core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_2core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_2core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl4_2core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl4_2core_glUseProgram(void *_glfuncs, GLuint program);
+void gl4_2core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl4_2core_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl4_2core_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl4_2core_glIsProgram(void *_glfuncs, GLuint program);
+void gl4_2core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_2core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl4_2core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_2core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl4_2core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl4_2core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_2core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl4_2core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_2core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl4_2core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_2core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl4_2core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_2core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl4_2core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_2core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_2core_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_2core_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_2core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_2core_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl4_2core_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl4_2core_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl4_2core_glCreateProgram(void *_glfuncs);
+void gl4_2core_glCompileShader(void *_glfuncs, GLuint shader);
+void gl4_2core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl4_2core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_2core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl4_2core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_2core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl4_2core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl4_2core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl4_2core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl4_2core_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl4_2core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl4_2core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl4_2core_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl4_2core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl4_2core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl4_2core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_2core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl4_2core_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl4_2core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl4_2core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl4_2core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl4_2core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl4_2core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl4_2core_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl4_2core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl4_2core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl4_2core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl4_2core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl4_2core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_2core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl4_2core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl4_2core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl4_2core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl4_2core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl4_2core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl4_2core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl4_2core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl4_2core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl4_2core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_2core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl4_2core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_2core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_2core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_2core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_2core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_2core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_2core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_2core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl4_2core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl4_2core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_2core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl4_2core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl4_2core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl4_2core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_2core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2core_glEndConditionalRender(void *_glfuncs);
+void gl4_2core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl4_2core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl4_2core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl4_2core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl4_2core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_2core_glEndTransformFeedback(void *_glfuncs);
+void gl4_2core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl4_2core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl4_2core_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_2core_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_2core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl4_2core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl4_2core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl4_2core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl4_2core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl4_2core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl4_2core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl4_2core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl4_2core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl4_2core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl4_2core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl4_2core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl4_2core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl4_2core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl4_2core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl4_2core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl4_2core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_2core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_2core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl4_2core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl4_2core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl4_2core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl4_2core_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl4_2core_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl4_2core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl4_2core_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl4_2core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl4_2core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_2core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_2core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl4_2core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl4_2core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl4_2core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_2core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_2core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_2core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_2core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_2core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_2core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_2core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_2core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_2core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_2core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_2core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_2core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_2core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_2core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_2core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_2core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_2core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_2core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_2core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_2core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_2core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_2core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_2core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_2core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_2core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_2core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_2core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_2core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_2core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_2core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl4_2core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl4_2core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl4_2core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl4_2core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl4_2core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_2core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_2core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl4_2core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_2core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl4_2core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl4_2core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_2core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl4_2core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl4_2core_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl4_2core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl4_2core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl4_2core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_2core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl4_2core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+void gl4_2core_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params);
+void gl4_2core_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index);
+void gl4_2core_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id);
+void gl4_2core_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream);
+void gl4_2core_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id);
+void gl4_2core_glResumeTransformFeedback(void *_glfuncs);
+void gl4_2core_glPauseTransformFeedback(void *_glfuncs);
+GLboolean gl4_2core_glIsTransformFeedback(void *_glfuncs, GLuint id);
+void gl4_2core_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_2core_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_2core_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id);
+void gl4_2core_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values);
+void gl4_2core_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value);
+void gl4_2core_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values);
+void gl4_2core_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params);
+void gl4_2core_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value);
+void gl4_2core_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_2core_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_2core_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
+GLuint gl4_2core_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+GLint gl4_2core_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+void gl4_2core_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params);
+void gl4_2core_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2core_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2core_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2core_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2core_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_2core_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_2core_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1);
+void gl4_2core_glUniform1d(void *_glfuncs, GLint location, GLdouble v0);
+void gl4_2core_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect);
+void gl4_2core_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect);
+void gl4_2core_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+void gl4_2core_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst);
+void gl4_2core_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+void gl4_2core_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode);
+void gl4_2core_glMinSampleShading(void *_glfuncs, GLfloat value);
+void gl4_2core_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data);
+void gl4_2core_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data);
+void gl4_2core_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f);
+void gl4_2core_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v);
+void gl4_2core_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_2core_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+void gl4_2core_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v);
+void gl4_2core_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_2core_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+void gl4_2core_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v);
+void gl4_2core_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_2core_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_2core_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2core_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2core_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2core_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_2core_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_2core_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_2core_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_2core_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_2core_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_2core_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_2core_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_2core_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_2core_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_2core_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_2core_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2core_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_2core_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2core_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_2core_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_2core_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_2core_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_2core_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_2core_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2core_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_2core_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2core_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_2core_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_2core_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_2core_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_2core_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1);
+void gl4_2core_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2core_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1);
+void gl4_2core_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2core_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1);
+void gl4_2core_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_2core_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1);
+void gl4_2core_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_2core_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0);
+void gl4_2core_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_2core_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0);
+void gl4_2core_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_2core_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0);
+void gl4_2core_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_2core_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0);
+void gl4_2core_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params);
+GLboolean gl4_2core_glIsProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_2core_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines);
+void gl4_2core_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines);
+void gl4_2core_glBindProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_2core_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program);
+void gl4_2core_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program);
+void gl4_2core_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value);
+void gl4_2core_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_2core_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
+void gl4_2core_glClearDepthf(void *_glfuncs, GLfloat dd);
+void gl4_2core_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f);
+void gl4_2core_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision);
+void gl4_2core_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_2core_glReleaseShaderCompiler(void *_glfuncs);
+void gl4_2core_glTexStorage3D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth);
+void gl4_2core_glTexStorage2D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_2core_glTexStorage1D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width);
+void gl4_2core_glMemoryBarrier(void *_glfuncs, GLbitfield barriers);
+void gl4_2core_glBindImageTexture(void *_glfuncs, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+void gl4_2core_glGetActiveAtomicCounterBufferiv(void *_glfuncs, GLuint program, GLuint bufferIndex, GLenum pname, GLint* params);
+void gl4_2core_glGetInternalformativ(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint* params);
+void gl4_2core_glDrawTransformFeedbackStreamInstanced(void *_glfuncs, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+void gl4_2core_glDrawTransformFeedbackInstanced(void *_glfuncs, GLenum mode, GLuint id, GLsizei instancecount);
+void gl4_2core_glDrawElementsInstancedBaseVertexBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+void gl4_2core_glDrawElementsInstancedBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLuint baseinstance);
+void gl4_2core_glDrawArraysInstancedBaseInstance(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/gl.go
new file mode 100644
index 000000000..a452b7296
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.2core/gl.go
@@ -0,0 +1,6594 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 4.2 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl4_2core_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 4.2 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 4.2 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+ FIXED = 0x140C
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ ALL_BARRIER_BITS = 0xFFFFFFFF
+ ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
+ BUFFER_UPDATE_BARRIER_BIT = 0x00000200
+ COMMAND_BARRIER_BIT = 0x00000040
+ ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
+ FRAMEBUFFER_BARRIER_BIT = 0x00000400
+ PIXEL_BUFFER_BARRIER_BIT = 0x00000080
+ SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
+ TEXTURE_FETCH_BARRIER_BIT = 0x00000008
+ TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
+ TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
+ UNIFORM_BARRIER_BIT = 0x00000004
+ VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ PATCHES = 0x000E
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ VERTEX_SHADER_BIT = 0x00000001
+ FRAGMENT_SHADER_BIT = 0x00000002
+ GEOMETRY_SHADER_BIT = 0x00000004
+ TESS_CONTROL_SHADER_BIT = 0x00000008
+ TESS_EVALUATION_SHADER_BIT = 0x00000010
+ ALL_SHADER_BITS = 0xFFFFFFFF
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ PROGRAM_SEPARABLE = 0x8258
+ ACTIVE_PROGRAM = 0x8259
+ PROGRAM_PIPELINE_BINDING = 0x825A
+ MAX_VIEWPORTS = 0x825B
+ VIEWPORT_SUBPIXEL_BITS = 0x825C
+ VIEWPORT_BOUNDS_RANGE = 0x825D
+ LAYER_PROVOKING_VERTEX = 0x825E
+ VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+ UNDEFINED_VERTEX = 0x8260
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ PROGRAM_BINARY_LENGTH = 0x8741
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+ PROGRAM_BINARY_FORMATS = 0x87FF
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+ MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ GEOMETRY_SHADER_INVOCATIONS = 0x887F
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+ IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ SAMPLE_SHADING = 0x8C36
+ MIN_SAMPLE_SHADING_VALUE = 0x8C37
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGB565 = 0x8D62
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ ACTIVE_SUBROUTINES = 0x8DE5
+ ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+ MAX_SUBROUTINES = 0x8DE7
+ MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+ LOW_FLOAT = 0x8DF0
+ MEDIUM_FLOAT = 0x8DF1
+ HIGH_FLOAT = 0x8DF2
+ LOW_INT = 0x8DF3
+ MEDIUM_INT = 0x8DF4
+ HIGH_INT = 0x8DF5
+ SHADER_BINARY_FORMATS = 0x8DF8
+ NUM_SHADER_BINARY_FORMATS = 0x8DF9
+ SHADER_COMPILER = 0x8DFA
+ MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+ MAX_VARYING_VECTORS = 0x8DFC
+ MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+ MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+ TRANSFORM_FEEDBACK = 0x8E22
+ TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+ TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+ TRANSFORM_FEEDBACK_BINDING = 0x8E25
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+ ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+ ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+ NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+ COMPATIBLE_SUBROUTINES = 0x8E4B
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+ MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+ MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+ FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+ MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+ MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+ MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+ MAX_VERTEX_STREAMS = 0x8E71
+ PATCH_VERTICES = 0x8E72
+ PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+ PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+ TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+ TESS_GEN_MODE = 0x8E76
+ TESS_GEN_SPACING = 0x8E77
+ TESS_GEN_VERTEX_ORDER = 0x8E78
+ TESS_GEN_POINT_MODE = 0x8E79
+ ISOLINES = 0x8E7A
+ FRACTIONAL_ODD = 0x8E7B
+ FRACTIONAL_EVEN = 0x8E7C
+ MAX_PATCH_VERTICES = 0x8E7D
+ MAX_TESS_GEN_LEVEL = 0x8E7E
+ MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+ MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+ MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+ MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+ MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+ MAX_TESS_PATCH_COMPONENTS = 0x8E84
+ MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+ MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+ TESS_EVALUATION_SHADER = 0x8E87
+ TESS_CONTROL_SHADER = 0x8E88
+ MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+ MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+ COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C
+ COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D
+ COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E
+ COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ MAX_IMAGE_UNITS = 0x8F38
+ MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
+ IMAGE_BINDING_NAME = 0x8F3A
+ IMAGE_BINDING_LEVEL = 0x8F3B
+ IMAGE_BINDING_LAYERED = 0x8F3C
+ IMAGE_BINDING_LAYER = 0x8F3D
+ IMAGE_BINDING_ACCESS = 0x8F3E
+ DRAW_INDIRECT_BUFFER = 0x8F3F
+ DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+ DOUBLE_MAT2 = 0x8F46
+ DOUBLE_MAT3 = 0x8F47
+ DOUBLE_MAT4 = 0x8F48
+ DOUBLE_MAT2x3 = 0x8F49
+ DOUBLE_MAT2x4 = 0x8F4A
+ DOUBLE_MAT3x2 = 0x8F4B
+ DOUBLE_MAT3x4 = 0x8F4C
+ DOUBLE_MAT4x2 = 0x8F4D
+ DOUBLE_MAT4x3 = 0x8F4E
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ DOUBLE_VEC2 = 0x8FFC
+ DOUBLE_VEC3 = 0x8FFD
+ DOUBLE_VEC4 = 0x8FFE
+ TEXTURE_CUBE_MAP_ARRAY = 0x9009
+ TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+ PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
+ SAMPLER_CUBE_MAP_ARRAY = 0x900C
+ SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+ INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+ UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+ IMAGE_1D = 0x904C
+ IMAGE_2D = 0x904D
+ IMAGE_3D = 0x904E
+ IMAGE_2D_RECT = 0x904F
+ IMAGE_CUBE = 0x9050
+ IMAGE_BUFFER = 0x9051
+ IMAGE_1D_ARRAY = 0x9052
+ IMAGE_2D_ARRAY = 0x9053
+ IMAGE_CUBE_MAP_ARRAY = 0x9054
+ IMAGE_2D_MULTISAMPLE = 0x9055
+ IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
+ INT_IMAGE_1D = 0x9057
+ INT_IMAGE_2D = 0x9058
+ INT_IMAGE_3D = 0x9059
+ INT_IMAGE_2D_RECT = 0x905A
+ INT_IMAGE_CUBE = 0x905B
+ INT_IMAGE_BUFFER = 0x905C
+ INT_IMAGE_1D_ARRAY = 0x905D
+ INT_IMAGE_2D_ARRAY = 0x905E
+ INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
+ INT_IMAGE_2D_MULTISAMPLE = 0x9060
+ INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
+ UNSIGNED_INT_IMAGE_1D = 0x9062
+ UNSIGNED_INT_IMAGE_2D = 0x9063
+ UNSIGNED_INT_IMAGE_3D = 0x9064
+ UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
+ UNSIGNED_INT_IMAGE_CUBE = 0x9066
+ UNSIGNED_INT_IMAGE_BUFFER = 0x9067
+ UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
+ UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
+ UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
+ MAX_IMAGE_SAMPLES = 0x906D
+ IMAGE_BINDING_FORMAT = 0x906E
+ RGB10_A2UI = 0x906F
+ MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
+ IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
+ IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
+ IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
+ MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
+ MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
+ MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
+ MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
+ MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
+ MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+ UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
+ UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
+ UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
+ UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
+ PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
+ PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
+ PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
+ PACK_COMPRESSED_BLOCK_SIZE = 0x912E
+ TEXTURE_IMMUTABLE_FORMAT = 0x912F
+ ATOMIC_COUNTER_BUFFER = 0x92C0
+ ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
+ ATOMIC_COUNTER_BUFFER_START = 0x92C2
+ ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
+ ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
+ MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
+ MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
+ MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
+ MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
+ MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
+ MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
+ MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
+ MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
+ MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
+ MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
+ MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
+ MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
+ MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
+ ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
+ UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
+ UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
+ MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
+ NUM_SAMPLE_COUNTS = 0x9380
+)
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl4_2core_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl4_2core_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl4_2core_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl4_2core_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2core_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl4_2core_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl4_2core_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl4_2core_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl4_2core_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl4_2core_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl4_2core_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl4_2core_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl4_2core_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl4_2core_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_2core_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl4_2core_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl4_2core_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl4_2core_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl4_2core_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl4_2core_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl4_2core_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl4_2core_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl4_2core_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl4_2core_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl4_2core_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl4_2core_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl4_2core_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl4_2core_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl4_2core_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_2core_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_2core_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl4_2core_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl4_2core_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl4_2core_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl4_2core_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl4_2core_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl4_2core_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl4_2core_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl4_2core_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl4_2core_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl4_2core_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl4_2core_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl4_2core_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl4_2core_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl4_2core_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl4_2core_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl4_2core_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl4_2core_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl4_2core_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl4_2core_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl4_2core_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl4_2core_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl4_2core_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl4_2core_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl4_2core_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl4_2core_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl4_2core_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl4_2core_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl4_2core_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl4_2core_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl4_2core_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl4_2core_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl4_2core_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl4_2core_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl4_2core_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl4_2core_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_2core_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_2core_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_2core_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl4_2core_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl4_2core_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl4_2core_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl4_2core_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl4_2core_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl4_2core_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl4_2core_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl4_2core_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl4_2core_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl4_2core_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl4_2core_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl4_2core_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl4_2core_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_2core_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl4_2core_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl4_2core_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl4_2core_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_2core_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_2core_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_2core_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl4_2core_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl4_2core_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_2core_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_2core_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl4_2core_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl4_2core_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl4_2core_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl4_2core_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl4_2core_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl4_2core_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl4_2core_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_2core_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl4_2core_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl4_2core_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl4_2core_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl4_2core_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_2core_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl4_2core_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_2core_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_2core_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_2core_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_2core_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_2core_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl4_2core_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_2core_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_2core_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_2core_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_2core_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_2core_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl4_2core_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl4_2core_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl4_2core_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl4_2core_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl4_2core_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl4_2core_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_2core_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl4_2core_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_2core_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl4_2core_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl4_2core_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_2core_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl4_2core_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl4_2core_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl4_2core_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl4_2core_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl4_2core_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl4_2core_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl4_2core_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl4_2core_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl4_2core_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl4_2core_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl4_2core_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl4_2core_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_2core_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl4_2core_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl4_2core_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_2core_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl4_2core_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_2core_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_2core_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl4_2core_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl4_2core_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_2core_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl4_2core_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl4_2core_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl4_2core_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl4_2core_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_2core_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_2core_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl4_2core_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl4_2core_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl4_2core_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl4_2core_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl4_2core_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_2core_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_2core_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl4_2core_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl4_2core_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl4_2core_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_2core_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_2core_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_2core_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_2core_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl4_2core_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_2core_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl4_2core_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl4_2core_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl4_2core_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl4_2core_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl4_2core_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl4_2core_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_2core_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl4_2core_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl4_2core_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl4_2core_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl4_2core_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl4_2core_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl4_2core_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl4_2core_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl4_2core_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl4_2core_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl4_2core_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl4_2core_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl4_2core_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl4_2core_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl4_2core_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl4_2core_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl4_2core_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_2core_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl4_2core_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl4_2core_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl4_2core_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_2core_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl4_2core_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl4_2core_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl4_2core_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl4_2core_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl4_2core_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl4_2core_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl4_2core_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl4_2core_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl4_2core_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_2core_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl4_2core_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl4_2core_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_2core_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_2core_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_2core_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_2core_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_2core_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_2core_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_2core_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_2core_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_2core_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_2core_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_2core_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl4_2core_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_2core_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_2core_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2core_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2core_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_2core_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_2core_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_2core_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_2core_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_2core_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_2core_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_2core_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_2core_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2core_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2core_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2core_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2core_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2core_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2core_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_2core_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_2core_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_2core_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl4_2core_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_2core_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl4_2core_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_2core_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl4_2core_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl4_2core_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl4_2core_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl4_2core_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_2core_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl4_2core_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl4_2core_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_2core_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl4_2core_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl4_2core_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_2core_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl4_2core_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl4_2core_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl4_2core_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl4_2core_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl4_2core_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_2core_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl4_2core_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl4_2core_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryIndexediv.xml
+func (gl *GL) GetQueryIndexediv(target glbase.Enum, index uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetQueryIndexediv(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQueryIndexed.xml
+func (gl *GL) EndQueryIndexed(target glbase.Enum, index uint32) {
+ C.gl4_2core_glEndQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
+func (gl *GL) BeginQueryIndexed(target glbase.Enum, index, id uint32) {
+ C.gl4_2core_glBeginQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStream.xml
+func (gl *GL) DrawTransformFeedbackStream(mode glbase.Enum, id, stream uint32) {
+ C.gl4_2core_glDrawTransformFeedbackStream(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedback.xml
+func (gl *GL) DrawTransformFeedback(mode glbase.Enum, id uint32) {
+ C.gl4_2core_glDrawTransformFeedback(gl.funcs, C.GLenum(mode), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResumeTransformFeedback.xml
+func (gl *GL) ResumeTransformFeedback() {
+ C.gl4_2core_glResumeTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPauseTransformFeedback.xml
+func (gl *GL) PauseTransformFeedback() {
+ C.gl4_2core_glPauseTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTransformFeedback.xml
+func (gl *GL) IsTransformFeedback(id uint32) bool {
+ glresult := C.gl4_2core_glIsTransformFeedback(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenTransformFeedbacks.xml
+func (gl *GL) GenTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_2core_glGenTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTransformFeedbacks.xml
+func (gl *GL) DeleteTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_2core_glDeleteTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTransformFeedback.xml
+func (gl *GL) BindTransformFeedback(target glbase.Enum, id uint32) {
+ C.gl4_2core_glBindTransformFeedback(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameterfv.xml
+func (gl *GL) PatchParameterfv(pname glbase.Enum, values []float32) {
+ C.gl4_2core_glPatchParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameteri.xml
+func (gl *GL) PatchParameteri(pname glbase.Enum, value int32) {
+ C.gl4_2core_glPatchParameteri(gl.funcs, C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramStageiv.xml
+func (gl *GL) GetProgramStageiv(program glbase.Program, shadertype, pname glbase.Enum, values []int32) {
+ C.gl4_2core_glGetProgramStageiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformSubroutineuiv.xml
+func (gl *GL) GetUniformSubroutineuiv(shadertype glbase.Enum, location glbase.Uniform, params []uint32) {
+ C.gl4_2core_glGetUniformSubroutineuiv(gl.funcs, C.GLenum(shadertype), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformSubroutinesuiv.xml
+func (gl *GL) UniformSubroutinesuiv(shadertype glbase.Enum, count int, value []uint32) {
+ C.gl4_2core_glUniformSubroutinesuiv(gl.funcs, C.GLenum(shadertype), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineName.xml
+func (gl *GL) GetActiveSubroutineName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_2core_glGetActiveSubroutineName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformName.xml
+func (gl *GL) GetActiveSubroutineUniformName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_2core_glGetActiveSubroutineUniformName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformiv.xml
+func (gl *GL) GetActiveSubroutineUniformiv(program glbase.Program, shadertype glbase.Enum, index uint32, pname glbase.Enum, values []int32) {
+ C.gl4_2core_glGetActiveSubroutineUniformiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineIndex.xml
+func (gl *GL) GetSubroutineIndex(program glbase.Program, shadertype glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_2core_glGetSubroutineIndex(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineUniformLocation.xml
+func (gl *GL) GetSubroutineUniformLocation(program glbase.Program, shadertype glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_2core_glGetSubroutineUniformLocation(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformdv.xml
+func (gl *GL) GetUniformdv(program glbase.Program, location glbase.Uniform, params []float64) {
+ C.gl4_2core_glGetUniformdv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x3dv.xml
+func (gl *GL) UniformMatrix4x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2core_glUniformMatrix4x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x2dv.xml
+func (gl *GL) UniformMatrix4x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2core_glUniformMatrix4x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x4dv.xml
+func (gl *GL) UniformMatrix3x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2core_glUniformMatrix3x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x2dv.xml
+func (gl *GL) UniformMatrix3x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2core_glUniformMatrix3x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x4dv.xml
+func (gl *GL) UniformMatrix2x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2core_glUniformMatrix2x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x3dv.xml
+func (gl *GL) UniformMatrix2x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2core_glUniformMatrix2x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4dv.xml
+func (gl *GL) UniformMatrix4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2core_glUniformMatrix4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3dv.xml
+func (gl *GL) UniformMatrix3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2core_glUniformMatrix3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2dv.xml
+func (gl *GL) UniformMatrix2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_2core_glUniformMatrix2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4dv.xml
+func (gl *GL) Uniform4dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_2core_glUniform4dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3dv.xml
+func (gl *GL) Uniform3dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_2core_glUniform3dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2dv.xml
+func (gl *GL) Uniform2dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_2core_glUniform2dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1dv.xml
+func (gl *GL) Uniform1dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_2core_glUniform1dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4d.xml
+func (gl *GL) Uniform4d(location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_2core_glUniform4d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3d.xml
+func (gl *GL) Uniform3d(location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_2core_glUniform3d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2d.xml
+func (gl *GL) Uniform2d(location glbase.Uniform, v0, v1 float64) {
+ C.gl4_2core_glUniform2d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1d.xml
+func (gl *GL) Uniform1d(location glbase.Uniform, v0 float64) {
+ C.gl4_2core_glUniform1d(gl.funcs, C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsIndirect.xml
+func (gl *GL) DrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysIndirect.xml
+func (gl *GL) DrawArraysIndirect(mode glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparatei.xml
+func (gl *GL) BlendFuncSeparatei(buf uint32, srcRGB, dstRGB, srcAlpha, dstAlpha glbase.Enum) {
+ C.gl4_2core_glBlendFuncSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(srcRGB), C.GLenum(dstRGB), C.GLenum(srcAlpha), C.GLenum(dstAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunci.xml
+func (gl *GL) BlendFunci(buf uint32, src, dst glbase.Enum) {
+ C.gl4_2core_glBlendFunci(gl.funcs, C.GLuint(buf), C.GLenum(src), C.GLenum(dst))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparatei.xml
+func (gl *GL) BlendEquationSeparatei(buf uint32, modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_2core_glBlendEquationSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationi.xml
+func (gl *GL) BlendEquationi(buf uint32, mode glbase.Enum) {
+ C.gl4_2core_glBlendEquationi(gl.funcs, C.GLuint(buf), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinSampleShading.xml
+func (gl *GL) MinSampleShading(value float32) {
+ C.gl4_2core_glMinSampleShading(gl.funcs, C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublei_v.xml
+func (gl *GL) GetDoublei_v(target glbase.Enum, index uint32, data []float64) {
+ C.gl4_2core_glGetDoublei_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloati_v.xml
+func (gl *GL) GetFloati_v(target glbase.Enum, index uint32, data []float32) {
+ C.gl4_2core_glGetFloati_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeIndexed.xml
+func (gl *GL) DepthRangeIndexed(index uint32, n, f float64) {
+ C.gl4_2core_glDepthRangeIndexed(gl.funcs, C.GLuint(index), C.GLdouble(n), C.GLdouble(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeArrayv.xml
+func (gl *GL) DepthRangeArrayv(first uint32, count int, v []float64) {
+ C.gl4_2core_glDepthRangeArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexedv.xml
+func (gl *GL) ScissorIndexedv(index uint32, v []int32) {
+ C.gl4_2core_glScissorIndexedv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexed.xml
+func (gl *GL) ScissorIndexed(index uint32, left, bottom int32, width, height int) {
+ C.gl4_2core_glScissorIndexed(gl.funcs, C.GLuint(index), C.GLint(left), C.GLint(bottom), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorArrayv.xml
+func (gl *GL) ScissorArrayv(first uint32, count int, v []int32) {
+ C.gl4_2core_glScissorArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedfv.xml
+func (gl *GL) ViewportIndexedfv(index uint32, v []float32) {
+ C.gl4_2core_glViewportIndexedfv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedf.xml
+func (gl *GL) ViewportIndexedf(index uint32, x, y, w, h float32) {
+ C.gl4_2core_glViewportIndexedf(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(w), C.GLfloat(h))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportArrayv.xml
+func (gl *GL) ViewportArrayv(first uint32, count int, v []float32) {
+ C.gl4_2core_glViewportArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribLdv.xml
+func (gl *GL) GetVertexAttribLdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ C.gl4_2core_glGetVertexAttribLdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribLPointer.xml
+func (gl *GL) VertexAttribLPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glVertexAttribLPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4dv.xml
+func (gl *GL) VertexAttribL4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2core_glVertexAttribL4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3dv.xml
+func (gl *GL) VertexAttribL3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2core_glVertexAttribL3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2dv.xml
+func (gl *GL) VertexAttribL2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_2core_glVertexAttribL2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1dv.xml
+func (gl *GL) VertexAttribL1dv(index glbase.Attrib, v []float64) {
+ C.gl4_2core_glVertexAttribL1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4d.xml
+func (gl *GL) VertexAttribL4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_2core_glVertexAttribL4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3d.xml
+func (gl *GL) VertexAttribL3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_2core_glVertexAttribL3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2d.xml
+func (gl *GL) VertexAttribL2d(index glbase.Attrib, x, y float64) {
+ C.gl4_2core_glVertexAttribL2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1d.xml
+func (gl *GL) VertexAttribL1d(index glbase.Attrib, x float64) {
+ C.gl4_2core_glVertexAttribL1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineInfoLog.xml
+func (gl *GL) GetProgramPipelineInfoLog(pipeline uint32, bufSize int32, length []int32, infoLog []byte) {
+ C.gl4_2core_glGetProgramPipelineInfoLog(gl.funcs, C.GLuint(pipeline), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgramPipeline.xml
+func (gl *GL) ValidateProgramPipeline(pipeline uint32) {
+ C.gl4_2core_glValidateProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3dv.xml
+func (gl *GL) ProgramUniformMatrix4x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix4x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4dv.xml
+func (gl *GL) ProgramUniformMatrix3x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix3x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2dv.xml
+func (gl *GL) ProgramUniformMatrix4x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix4x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4dv.xml
+func (gl *GL) ProgramUniformMatrix2x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix2x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2dv.xml
+func (gl *GL) ProgramUniformMatrix3x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix3x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3dv.xml
+func (gl *GL) ProgramUniformMatrix2x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix2x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3fv.xml
+func (gl *GL) ProgramUniformMatrix4x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix4x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4fv.xml
+func (gl *GL) ProgramUniformMatrix3x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix3x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2fv.xml
+func (gl *GL) ProgramUniformMatrix4x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix4x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4fv.xml
+func (gl *GL) ProgramUniformMatrix2x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix2x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2fv.xml
+func (gl *GL) ProgramUniformMatrix3x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix3x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3fv.xml
+func (gl *GL) ProgramUniformMatrix2x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix2x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4dv.xml
+func (gl *GL) ProgramUniformMatrix4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3dv.xml
+func (gl *GL) ProgramUniformMatrix3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2dv.xml
+func (gl *GL) ProgramUniformMatrix2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4fv.xml
+func (gl *GL) ProgramUniformMatrix4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3fv.xml
+func (gl *GL) ProgramUniformMatrix3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2fv.xml
+func (gl *GL) ProgramUniformMatrix2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniformMatrix2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4uiv.xml
+func (gl *GL) ProgramUniform4uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_2core_glProgramUniform4uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4ui.xml
+func (gl *GL) ProgramUniform4ui(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_2core_glProgramUniform4ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4dv.xml
+func (gl *GL) ProgramUniform4dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniform4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4d.xml
+func (gl *GL) ProgramUniform4d(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_2core_glProgramUniform4d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4fv.xml
+func (gl *GL) ProgramUniform4fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniform4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4f.xml
+func (gl *GL) ProgramUniform4f(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_2core_glProgramUniform4f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4iv.xml
+func (gl *GL) ProgramUniform4iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniform4iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4i.xml
+func (gl *GL) ProgramUniform4i(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_2core_glProgramUniform4i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3uiv.xml
+func (gl *GL) ProgramUniform3uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_2core_glProgramUniform3uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3ui.xml
+func (gl *GL) ProgramUniform3ui(program glbase.Program, location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_2core_glProgramUniform3ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3dv.xml
+func (gl *GL) ProgramUniform3dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniform3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3d.xml
+func (gl *GL) ProgramUniform3d(program glbase.Program, location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_2core_glProgramUniform3d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3fv.xml
+func (gl *GL) ProgramUniform3fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniform3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3f.xml
+func (gl *GL) ProgramUniform3f(program glbase.Program, location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_2core_glProgramUniform3f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3iv.xml
+func (gl *GL) ProgramUniform3iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniform3iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3i.xml
+func (gl *GL) ProgramUniform3i(program glbase.Program, location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_2core_glProgramUniform3i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2uiv.xml
+func (gl *GL) ProgramUniform2uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_2core_glProgramUniform2uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2ui.xml
+func (gl *GL) ProgramUniform2ui(program glbase.Program, location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_2core_glProgramUniform2ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2dv.xml
+func (gl *GL) ProgramUniform2dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniform2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2d.xml
+func (gl *GL) ProgramUniform2d(program glbase.Program, location glbase.Uniform, v0, v1 float64) {
+ C.gl4_2core_glProgramUniform2d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2fv.xml
+func (gl *GL) ProgramUniform2fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniform2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2f.xml
+func (gl *GL) ProgramUniform2f(program glbase.Program, location glbase.Uniform, v0, v1 float32) {
+ C.gl4_2core_glProgramUniform2f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2iv.xml
+func (gl *GL) ProgramUniform2iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_2core_glProgramUniform2iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2i.xml
+func (gl *GL) ProgramUniform2i(program glbase.Program, location glbase.Uniform, v0, v1 int32) {
+ C.gl4_2core_glProgramUniform2i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1uiv.xml
+func (gl *GL) ProgramUniform1uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_2core_glProgramUniform1uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1ui.xml
+func (gl *GL) ProgramUniform1ui(program glbase.Program, location glbase.Uniform, v0 uint32) {
+ C.gl4_2core_glProgramUniform1ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1dv.xml
+func (gl *GL) ProgramUniform1dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ C.gl4_2core_glProgramUniform1dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1d.xml
+func (gl *GL) ProgramUniform1d(program glbase.Program, location glbase.Uniform, v0 float64) {
+ C.gl4_2core_glProgramUniform1d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1fv.xml
+func (gl *GL) ProgramUniform1fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ C.gl4_2core_glProgramUniform1fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1f.xml
+func (gl *GL) ProgramUniform1f(program glbase.Program, location glbase.Uniform, v0 float32) {
+ C.gl4_2core_glProgramUniform1f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1iv.xml
+func (gl *GL) ProgramUniform1iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ C.gl4_2core_glProgramUniform1iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1i.xml
+func (gl *GL) ProgramUniform1i(program glbase.Program, location glbase.Uniform, v0 int32) {
+ C.gl4_2core_glProgramUniform1i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineiv.xml
+func (gl *GL) GetProgramPipelineiv(pipeline uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetProgramPipelineiv(gl.funcs, C.GLuint(pipeline), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgramPipeline.xml
+func (gl *GL) IsProgramPipeline(pipeline uint32) bool {
+ glresult := C.gl4_2core_glIsProgramPipeline(gl.funcs, C.GLuint(pipeline))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenProgramPipelines.xml
+func (gl *GL) GenProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_2core_glGenProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteProgramPipelines.xml
+func (gl *GL) DeleteProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_2core_glDeleteProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindProgramPipeline.xml
+func (gl *GL) BindProgramPipeline(pipeline uint32) {
+ C.gl4_2core_glBindProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveShaderProgram.xml
+func (gl *GL) ActiveShaderProgram(pipeline uint32, program glbase.Program) {
+ C.gl4_2core_glActiveShaderProgram(gl.funcs, C.GLuint(pipeline), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUseProgramStages.xml
+func (gl *GL) UseProgramStages(pipeline uint32, stages glbase.Bitfield, program glbase.Program) {
+ C.gl4_2core_glUseProgramStages(gl.funcs, C.GLuint(pipeline), C.GLbitfield(stages), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramParameteri.xml
+func (gl *GL) ProgramParameteri(program glbase.Program, pname glbase.Enum, value int32) {
+ C.gl4_2core_glProgramParameteri(gl.funcs, C.GLuint(program), C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramBinary.xml
+func (gl *GL) ProgramBinary(program glbase.Program, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glProgramBinary(gl.funcs, C.GLuint(program), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramBinary.xml
+func (gl *GL) GetProgramBinary(program glbase.Program, bufSize int32, length []int32, binaryFormat []glbase.Enum, binary interface{}) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glGetProgramBinary(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLenum)(unsafe.Pointer(&binaryFormat[0])), binary_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepthf.xml
+func (gl *GL) ClearDepthf(dd float32) {
+ C.gl4_2core_glClearDepthf(gl.funcs, C.GLfloat(dd))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangef.xml
+func (gl *GL) DepthRangef(n, f float32) {
+ C.gl4_2core_glDepthRangef(gl.funcs, C.GLfloat(n), C.GLfloat(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderPrecisionFormat.xml
+func (gl *GL) GetShaderPrecisionFormat(shadertype, precisionType glbase.Enum, range_, precision []int32) {
+ C.gl4_2core_glGetShaderPrecisionFormat(gl.funcs, C.GLenum(shadertype), C.GLenum(precisionType), (*C.GLint)(unsafe.Pointer(&range_[0])), (*C.GLint)(unsafe.Pointer(&precision[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShaderBinary.xml
+func (gl *GL) ShaderBinary(count int, shaders []glbase.Shader, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glShaderBinary(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&shaders[0])), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReleaseShaderCompiler.xml
+func (gl *GL) ReleaseShaderCompiler() {
+ C.gl4_2core_glReleaseShaderCompiler(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage3D.xml
+func (gl *GL) TexStorage3D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width, height int, depth int32) {
+ C.gl4_2core_glTexStorage3D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage2D.xml
+func (gl *GL) TexStorage2D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_2core_glTexStorage2D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage1D.xml
+func (gl *GL) TexStorage1D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width int) {
+ C.gl4_2core_glTexStorage1D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMemoryBarrier.xml
+func (gl *GL) MemoryBarrier(barriers glbase.Bitfield) {
+ C.gl4_2core_glMemoryBarrier(gl.funcs, C.GLbitfield(barriers))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindImageTexture.xml
+func (gl *GL) BindImageTexture(unit uint32, texture glbase.Texture, level int, layered bool, layer int32, access, format glbase.Enum) {
+ C.gl4_2core_glBindImageTexture(gl.funcs, C.GLuint(unit), C.GLuint(texture), C.GLint(level), *(*C.GLboolean)(unsafe.Pointer(&layered)), C.GLint(layer), C.GLenum(access), C.GLenum(format))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAtomicCounterBufferiv.xml
+func (gl *GL) GetActiveAtomicCounterBufferiv(program glbase.Program, bufferIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_2core_glGetActiveAtomicCounterBufferiv(gl.funcs, C.GLuint(program), C.GLuint(bufferIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInternalformativ.xml
+func (gl *GL) GetInternalformativ(target, internalFormat, pname glbase.Enum, bufSize int32, params []int32) {
+ C.gl4_2core_glGetInternalformativ(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStreamInstanced.xml
+func (gl *GL) DrawTransformFeedbackStreamInstanced(mode glbase.Enum, id, stream uint32, instancecount int32) {
+ C.gl4_2core_glDrawTransformFeedbackStreamInstanced(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackInstanced.xml
+func (gl *GL) DrawTransformFeedbackInstanced(mode glbase.Enum, id uint32, instancecount int32) {
+ C.gl4_2core_glDrawTransformFeedbackInstanced(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertexBaseInstance.xml
+func (gl *GL) DrawElementsInstancedBaseVertexBaseInstance(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32, baseinstance uint32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawElementsInstancedBaseVertexBaseInstance(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseInstance.xml
+func (gl *GL) DrawElementsInstancedBaseInstance(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32, baseinstance uint32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_2core_glDrawElementsInstancedBaseInstance(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstancedBaseInstance.xml
+func (gl *GL) DrawArraysInstancedBaseInstance(mode glbase.Enum, first, count int, instancecount int32, baseinstance uint32) {
+ C.gl4_2core_glDrawArraysInstancedBaseInstance(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount), C.GLuint(baseinstance))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/funcs.cpp
new file mode 100644
index 000000000..04ab8fadd
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/funcs.cpp
@@ -0,0 +1,5556 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_4_3_compatibility.h>
+
+#include "funcs.h"
+
+void *gl4_3compat_funcs() {
+ QOpenGLFunctions_4_3_Compatibility* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_4_3_Compatibility>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl4_3compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl4_3compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl4_3compat_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl4_3compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl4_3compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl4_3compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl4_3compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl4_3compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl4_3compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl4_3compat_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl4_3compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl4_3compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl4_3compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl4_3compat_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl4_3compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl4_3compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl4_3compat_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl4_3compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl4_3compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl4_3compat_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl4_3compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl4_3compat_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl4_3compat_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl4_3compat_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl4_3compat_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl4_3compat_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl4_3compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl4_3compat_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl4_3compat_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl4_3compat_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl4_3compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl4_3compat_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl4_3compat_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl4_3compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl4_3compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl4_3compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl4_3compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl4_3compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl4_3compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl4_3compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl4_3compat_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl4_3compat_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl4_3compat_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl4_3compat_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl4_3compat_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl4_3compat_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl4_3compat_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl4_3compat_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl4_3compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl4_3compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl4_3compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl4_3compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl4_3compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl4_3compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl4_3compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl4_3compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl4_3compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl4_3compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl4_3compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl4_3compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl4_3compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl4_3compat_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_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl4_3compat_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_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl4_3compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl4_3compat_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl4_3compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl4_3compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl4_3compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl4_3compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl4_3compat_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_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl4_3compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl4_3compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl4_3compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl4_3compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl4_3compat_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl4_3compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl4_3compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl4_3compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl4_3compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl4_3compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl4_3compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl4_3compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl4_3compat_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl4_3compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl4_3compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl4_3compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl4_3compat_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl4_3compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl4_3compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl4_3compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl4_3compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl4_3compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl4_3compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl4_3compat_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl4_3compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl4_3compat_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl4_3compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl4_3compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl4_3compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl4_3compat_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl4_3compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl4_3compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl4_3compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl4_3compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl4_3compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl4_3compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl4_3compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl4_3compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl4_3compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl4_3compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl4_3compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl4_3compat_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl4_3compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl4_3compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl4_3compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl4_3compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl4_3compat_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl4_3compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl4_3compat_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl4_3compat_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl4_3compat_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl4_3compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl4_3compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl4_3compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl4_3compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl4_3compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl4_3compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl4_3compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl4_3compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl4_3compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl4_3compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl4_3compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl4_3compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl4_3compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl4_3compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_3compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_3compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl4_3compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl4_3compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl4_3compat_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl4_3compat_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl4_3compat_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl4_3compat_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl4_3compat_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl4_3compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl4_3compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl4_3compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl4_3compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl4_3compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl4_3compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl4_3compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl4_3compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl4_3compat_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl4_3compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl4_3compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl4_3compat_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl4_3compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl4_3compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl4_3compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl4_3compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl4_3compat_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl4_3compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl4_3compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl4_3compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl4_3compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl4_3compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl4_3compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl4_3compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl4_3compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl4_3compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl4_3compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl4_3compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl4_3compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl4_3compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl4_3compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl4_3compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl4_3compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl4_3compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl4_3compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl4_3compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl4_3compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl4_3compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl4_3compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl4_3compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl4_3compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl4_3compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl4_3compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl4_3compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl4_3compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl4_3compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl4_3compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl4_3compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl4_3compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl4_3compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl4_3compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl4_3compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl4_3compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl4_3compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_3compat_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl4_3compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl4_3compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl4_3compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_3compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl4_3compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl4_3compat_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl4_3compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl4_3compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl4_3compat_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl4_3compat_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl4_3compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl4_3compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl4_3compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl4_3compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl4_3compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl4_3compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl4_3compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl4_3compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl4_3compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl4_3compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl4_3compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl4_3compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl4_3compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl4_3compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl4_3compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl4_3compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl4_3compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_3compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_3compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl4_3compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl4_3compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl4_3compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl4_3compat_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl4_3compat_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl4_3compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl4_3compat_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl4_3compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl4_3compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl4_3compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl4_3compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl4_3compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl4_3compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl4_3compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl4_3compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl4_3compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl4_3compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl4_3compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl4_3compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl4_3compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl4_3compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl4_3compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl4_3compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl4_3compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl4_3compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl4_3compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl4_3compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl4_3compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl4_3compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl4_3compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl4_3compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl4_3compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl4_3compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl4_3compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl4_3compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl4_3compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl4_3compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl4_3compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl4_3compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl4_3compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl4_3compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl4_3compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl4_3compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl4_3compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl4_3compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl4_3compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl4_3compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl4_3compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl4_3compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl4_3compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl4_3compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl4_3compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl4_3compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl4_3compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl4_3compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl4_3compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl4_3compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl4_3compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl4_3compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl4_3compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl4_3compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl4_3compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl4_3compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl4_3compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl4_3compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl4_3compat_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl4_3compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl4_3compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl4_3compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl4_3compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl4_3compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
+void gl4_3compat_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetQueryIndexediv(target, index, pname, params);
+}
+
+void gl4_3compat_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndQueryIndexed(target, index);
+}
+
+void gl4_3compat_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBeginQueryIndexed(target, index, id);
+}
+
+void gl4_3compat_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStream(mode, id, stream);
+}
+
+void gl4_3compat_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedback(mode, id);
+}
+
+void gl4_3compat_glResumeTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glResumeTransformFeedback();
+}
+
+void gl4_3compat_glPauseTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPauseTransformFeedback();
+}
+
+GLboolean gl4_3compat_glIsTransformFeedback(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsTransformFeedback(id);
+}
+
+void gl4_3compat_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenTransformFeedbacks(n, ids);
+}
+
+void gl4_3compat_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteTransformFeedbacks(n, ids);
+}
+
+void gl4_3compat_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindTransformFeedback(target, id);
+}
+
+void gl4_3compat_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPatchParameterfv(pname, values);
+}
+
+void gl4_3compat_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPatchParameteri(pname, value);
+}
+
+void gl4_3compat_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramStageiv(program, shadertype, pname, values);
+}
+
+void gl4_3compat_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformSubroutineuiv(shadertype, location, params);
+}
+
+void gl4_3compat_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformSubroutinesuiv(shadertype, count, value);
+}
+
+void gl4_3compat_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_3compat_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_3compat_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
+}
+
+GLuint gl4_3compat_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineIndex(program, shadertype, name);
+}
+
+GLint gl4_3compat_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineUniformLocation(program, shadertype, name);
+}
+
+void gl4_3compat_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetUniformdv(program, location, params);
+}
+
+void gl4_3compat_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3dv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2dv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4dv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2dv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4dv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3dv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4dv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3dv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2dv(location, count, transpose, value);
+}
+
+void gl4_3compat_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4dv(location, count, value);
+}
+
+void gl4_3compat_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3dv(location, count, value);
+}
+
+void gl4_3compat_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2dv(location, count, value);
+}
+
+void gl4_3compat_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1dv(location, count, value);
+}
+
+void gl4_3compat_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform4d(location, v0, v1, v2, v3);
+}
+
+void gl4_3compat_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform3d(location, v0, v1, v2);
+}
+
+void gl4_3compat_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform2d(location, v0, v1);
+}
+
+void gl4_3compat_glUniform1d(void *_glfuncs, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUniform1d(location, v0);
+}
+
+void gl4_3compat_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsIndirect(mode, gltype, indirect);
+}
+
+void gl4_3compat_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysIndirect(mode, indirect);
+}
+
+void gl4_3compat_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void gl4_3compat_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendFunci(buf, src, dst);
+}
+
+void gl4_3compat_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
+}
+
+void gl4_3compat_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBlendEquationi(buf, mode);
+}
+
+void gl4_3compat_glMinSampleShading(void *_glfuncs, GLfloat value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinSampleShading(value);
+}
+
+void gl4_3compat_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetDoublei_v(target, index, data);
+}
+
+void gl4_3compat_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFloati_v(target, index, data);
+}
+
+void gl4_3compat_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRangeIndexed(index, n, f);
+}
+
+void gl4_3compat_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRangeArrayv(first, count, v);
+}
+
+void gl4_3compat_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissorIndexedv(index, v);
+}
+
+void gl4_3compat_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissorIndexed(index, left, bottom, width, height);
+}
+
+void gl4_3compat_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glScissorArrayv(first, count, v);
+}
+
+void gl4_3compat_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewportIndexedfv(index, v);
+}
+
+void gl4_3compat_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewportIndexedf(index, x, y, w, h);
+}
+
+void gl4_3compat_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glViewportArrayv(first, count, v);
+}
+
+void gl4_3compat_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribLdv(index, pname, params);
+}
+
+void gl4_3compat_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribLPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_3compat_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4dv(index, v);
+}
+
+void gl4_3compat_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3dv(index, v);
+}
+
+void gl4_3compat_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2dv(index, v);
+}
+
+void gl4_3compat_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1dv(index, v);
+}
+
+void gl4_3compat_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4d(index, x, y, z, w);
+}
+
+void gl4_3compat_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3d(index, x, y, z);
+}
+
+void gl4_3compat_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2d(index, x, y);
+}
+
+void gl4_3compat_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1d(index, x);
+}
+
+void gl4_3compat_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
+}
+
+void gl4_3compat_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glValidateProgramPipeline(pipeline);
+}
+
+void gl4_3compat_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3dv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4dv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2dv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4dv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2dv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3dv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3fv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4fv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2fv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4fv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2fv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3fv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4dv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3dv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2dv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4fv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3fv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2fv(program, location, count, transpose, value);
+}
+
+void gl4_3compat_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4uiv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4ui(program, location, v0, v1, v2, v3);
+}
+
+void gl4_3compat_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4dv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4d(program, location, v0, v1, v2, v3);
+}
+
+void gl4_3compat_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4fv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4f(program, location, v0, v1, v2, v3);
+}
+
+void gl4_3compat_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4iv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform4i(program, location, v0, v1, v2, v3);
+}
+
+void gl4_3compat_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3uiv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3ui(program, location, v0, v1, v2);
+}
+
+void gl4_3compat_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3dv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3d(program, location, v0, v1, v2);
+}
+
+void gl4_3compat_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3fv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3f(program, location, v0, v1, v2);
+}
+
+void gl4_3compat_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3iv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform3i(program, location, v0, v1, v2);
+}
+
+void gl4_3compat_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2uiv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2ui(program, location, v0, v1);
+}
+
+void gl4_3compat_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2dv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2d(program, location, v0, v1);
+}
+
+void gl4_3compat_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2fv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2f(program, location, v0, v1);
+}
+
+void gl4_3compat_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2iv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform2i(program, location, v0, v1);
+}
+
+void gl4_3compat_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1uiv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1ui(program, location, v0);
+}
+
+void gl4_3compat_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1dv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1d(program, location, v0);
+}
+
+void gl4_3compat_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1fv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1f(program, location, v0);
+}
+
+void gl4_3compat_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1iv(program, location, count, value);
+}
+
+void gl4_3compat_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramUniform1i(program, location, v0);
+}
+
+void gl4_3compat_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineiv(pipeline, pname, params);
+}
+
+GLboolean gl4_3compat_glIsProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsProgramPipeline(pipeline);
+}
+
+void gl4_3compat_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGenProgramPipelines(n, pipelines);
+}
+
+void gl4_3compat_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteProgramPipelines(n, pipelines);
+}
+
+void gl4_3compat_glBindProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindProgramPipeline(pipeline);
+}
+
+void gl4_3compat_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glActiveShaderProgram(pipeline, program);
+}
+
+void gl4_3compat_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glUseProgramStages(pipeline, stages, program);
+}
+
+void gl4_3compat_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramParameteri(program, pname, value);
+}
+
+void gl4_3compat_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glProgramBinary(program, binaryFormat, binary, length);
+}
+
+void gl4_3compat_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
+}
+
+void gl4_3compat_glClearDepthf(void *_glfuncs, GLfloat dd)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearDepthf(dd);
+}
+
+void gl4_3compat_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDepthRangef(n, f);
+}
+
+void gl4_3compat_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetShaderPrecisionFormat(shadertype, precisionType, range_, precision);
+}
+
+void gl4_3compat_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderBinary(count, shaders, binaryFormat, binary, length);
+}
+
+void gl4_3compat_glReleaseShaderCompiler(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glReleaseShaderCompiler();
+}
+
+void gl4_3compat_glTexStorage3D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexStorage3D(target, levels, internalFormat, width, height, depth);
+}
+
+void gl4_3compat_glTexStorage2D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexStorage2D(target, levels, internalFormat, width, height);
+}
+
+void gl4_3compat_glTexStorage1D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexStorage1D(target, levels, internalFormat, width);
+}
+
+void gl4_3compat_glMemoryBarrier(void *_glfuncs, GLbitfield barriers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMemoryBarrier(barriers);
+}
+
+void gl4_3compat_glBindImageTexture(void *_glfuncs, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindImageTexture(unit, texture, level, layered, layer, access, format);
+}
+
+void gl4_3compat_glGetActiveAtomicCounterBufferiv(void *_glfuncs, GLuint program, GLuint bufferIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetActiveAtomicCounterBufferiv(program, bufferIndex, pname, params);
+}
+
+void gl4_3compat_glGetInternalformativ(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInternalformativ(target, internalFormat, pname, bufSize, params);
+}
+
+void gl4_3compat_glDrawTransformFeedbackStreamInstanced(void *_glfuncs, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
+}
+
+void gl4_3compat_glDrawTransformFeedbackInstanced(void *_glfuncs, GLenum mode, GLuint id, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackInstanced(mode, id, instancecount);
+}
+
+void gl4_3compat_glDrawElementsInstancedBaseVertexBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertexBaseInstance(mode, count, gltype, indices, instancecount, basevertex, baseinstance);
+}
+
+void gl4_3compat_glDrawElementsInstancedBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseInstance(mode, count, gltype, indices, instancecount, baseinstance);
+}
+
+void gl4_3compat_glDrawArraysInstancedBaseInstance(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
+}
+
+void gl4_3compat_glTexStorage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexStorage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_3compat_glTexStorage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexStorage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_3compat_glTexBufferRange(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexBufferRange(target, internalFormat, buffer, offset, size);
+}
+
+void gl4_3compat_glShaderStorageBlockBinding(void *_glfuncs, GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glShaderStorageBlockBinding(program, storageBlockIndex, storageBlockBinding);
+}
+
+GLint gl4_3compat_glGetProgramResourceLocationIndex(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetProgramResourceLocationIndex(program, programInterface, name);
+}
+
+GLint gl4_3compat_glGetProgramResourceLocation(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetProgramResourceLocation(program, programInterface, name);
+}
+
+void gl4_3compat_glGetProgramResourceiv(void *_glfuncs, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramResourceiv(program, programInterface, index, propCount, props, bufSize, length, params);
+}
+
+void gl4_3compat_glGetProgramResourceName(void *_glfuncs, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramResourceName(program, programInterface, index, bufSize, length, name);
+}
+
+GLuint gl4_3compat_glGetProgramResourceIndex(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGetProgramResourceIndex(program, programInterface, name);
+}
+
+void gl4_3compat_glGetProgramInterfaceiv(void *_glfuncs, GLuint program, GLenum programInterface, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetProgramInterfaceiv(program, programInterface, pname, params);
+}
+
+void gl4_3compat_glMultiDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect, GLsizei drawcount, GLsizei stride)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiDrawElementsIndirect(mode, gltype, indirect, drawcount, stride);
+}
+
+void gl4_3compat_glMultiDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect, GLsizei drawcount, GLsizei stride)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiDrawArraysIndirect(mode, indirect, drawcount, stride);
+}
+
+void gl4_3compat_glInvalidateSubFramebuffer(void *_glfuncs, GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
+}
+
+void gl4_3compat_glInvalidateFramebuffer(void *_glfuncs, GLenum target, GLsizei numAttachments, const GLenum* attachments)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInvalidateFramebuffer(target, numAttachments, attachments);
+}
+
+void gl4_3compat_glInvalidateBufferData(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInvalidateBufferData(buffer);
+}
+
+void gl4_3compat_glInvalidateBufferSubData(void *_glfuncs, GLuint buffer, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInvalidateBufferSubData(buffer, offset, length);
+}
+
+void gl4_3compat_glInvalidateTexImage(void *_glfuncs, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInvalidateTexImage(texture, level);
+}
+
+void gl4_3compat_glInvalidateTexSubImage(void *_glfuncs, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInvalidateTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth);
+}
+
+void gl4_3compat_glGetInternalformati64v(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint64* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetInternalformati64v(target, internalFormat, pname, bufSize, params);
+}
+
+void gl4_3compat_glGetFramebufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetFramebufferParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glFramebufferParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFramebufferParameteri(target, pname, param);
+}
+
+void gl4_3compat_glVertexBindingDivisor(void *_glfuncs, GLuint bindingindex, GLuint divisor)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexBindingDivisor(bindingindex, divisor);
+}
+
+void gl4_3compat_glVertexAttribBinding(void *_glfuncs, GLuint attribindex, GLuint bindingindex)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribBinding(attribindex, bindingindex);
+}
+
+void gl4_3compat_glVertexAttribLFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLuint relativeoffset)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribLFormat(attribindex, size, gltype, relativeoffset);
+}
+
+void gl4_3compat_glVertexAttribIFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLuint relativeoffset)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribIFormat(attribindex, size, gltype, relativeoffset);
+}
+
+void gl4_3compat_glVertexAttribFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLboolean normalized, GLuint relativeoffset)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribFormat(attribindex, size, gltype, normalized, relativeoffset);
+}
+
+void gl4_3compat_glBindVertexBuffer(void *_glfuncs, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBindVertexBuffer(bindingindex, buffer, offset, stride);
+}
+
+void gl4_3compat_glTextureView(void *_glfuncs, GLuint texture, GLenum target, GLuint origtexture, GLenum internalFormat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTextureView(texture, target, origtexture, internalFormat, minlevel, numlevels, minlayer, numlayers);
+}
+
+void gl4_3compat_glCopyImageSubData(void *_glfuncs, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
+}
+
+void gl4_3compat_glDispatchComputeIndirect(void *_glfuncs, GLintptr indirect)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDispatchComputeIndirect(indirect);
+}
+
+void gl4_3compat_glDispatchCompute(void *_glfuncs, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDispatchCompute(num_groups_x, num_groups_y, num_groups_z);
+}
+
+void gl4_3compat_glClearBufferSubData(void *_glfuncs, GLenum target, GLenum internalFormat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferSubData(target, internalFormat, offset, size, format, gltype, data);
+}
+
+void gl4_3compat_glClearBufferData(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearBufferData(target, internalFormat, format, gltype, data);
+}
+
+void gl4_3compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslatef(x, y, z);
+}
+
+void gl4_3compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTranslated(x, y, z);
+}
+
+void gl4_3compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glScalef(x, y, z);
+}
+
+void gl4_3compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glScaled(x, y, z);
+}
+
+void gl4_3compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotatef(angle, x, y, z);
+}
+
+void gl4_3compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRotated(angle, x, y, z);
+}
+
+void gl4_3compat_glPushMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushMatrix();
+}
+
+void gl4_3compat_glPopMatrix(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopMatrix();
+}
+
+void gl4_3compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glOrtho(left, right, bottom, top, zNear, zFar);
+}
+
+void gl4_3compat_glMultMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixd(m);
+}
+
+void gl4_3compat_glMultMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultMatrixf(m);
+}
+
+void gl4_3compat_glMatrixMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMatrixMode(mode);
+}
+
+void gl4_3compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixd(m);
+}
+
+void gl4_3compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadMatrixf(m);
+}
+
+void gl4_3compat_glLoadIdentity(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadIdentity();
+}
+
+void gl4_3compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFrustum(left, right, bottom, top, zNear, zFar);
+}
+
+GLboolean gl4_3compat_glIsList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glIsList(list);
+}
+
+void gl4_3compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGeniv(coord, pname, params);
+}
+
+void gl4_3compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGenfv(coord, pname, params);
+}
+
+void gl4_3compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexGendv(coord, pname, params);
+}
+
+void gl4_3compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnviv(target, pname, params);
+}
+
+void gl4_3compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetTexEnvfv(target, pname, params);
+}
+
+void gl4_3compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPolygonStipple(mask);
+}
+
+void gl4_3compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapusv(glmap, values);
+}
+
+void gl4_3compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapuiv(glmap, values);
+}
+
+void gl4_3compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetPixelMapfv(glmap, values);
+}
+
+void gl4_3compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialiv(face, pname, params);
+}
+
+void gl4_3compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMaterialfv(face, pname, params);
+}
+
+void gl4_3compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapiv(target, query, v);
+}
+
+void gl4_3compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapfv(target, query, v);
+}
+
+void gl4_3compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMapdv(target, query, v);
+}
+
+void gl4_3compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightiv(light, pname, params);
+}
+
+void gl4_3compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetLightfv(light, pname, params);
+}
+
+void gl4_3compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetClipPlane(plane, equation);
+}
+
+void gl4_3compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDrawPixels(width, height, format, gltype, pixels);
+}
+
+void gl4_3compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyPixels(x, y, width, height, gltype);
+}
+
+void gl4_3compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapusv(glmap, mapsize, values);
+}
+
+void gl4_3compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapuiv(glmap, mapsize, values);
+}
+
+void gl4_3compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelMapfv(glmap, mapsize, values);
+}
+
+void gl4_3compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferi(pname, param);
+}
+
+void gl4_3compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelTransferf(pname, param);
+}
+
+void gl4_3compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPixelZoom(xfactor, yfactor);
+}
+
+void gl4_3compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glAlphaFunc(glfunc, ref);
+}
+
+void gl4_3compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint2(i, j);
+}
+
+void gl4_3compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh2(mode, i1, i2, j1, j2);
+}
+
+void gl4_3compat_glEvalPoint1(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalPoint1(i);
+}
+
+void gl4_3compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalMesh1(mode, i1, i2);
+}
+
+void gl4_3compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2fv(u);
+}
+
+void gl4_3compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2f(u, v);
+}
+
+void gl4_3compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2dv(u);
+}
+
+void gl4_3compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord2d(u, v);
+}
+
+void gl4_3compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1fv(u);
+}
+
+void gl4_3compat_glEvalCoord1f(void *_glfuncs, GLfloat u)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1f(u);
+}
+
+void gl4_3compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1dv(u);
+}
+
+void gl4_3compat_glEvalCoord1d(void *_glfuncs, GLdouble u)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEvalCoord1d(u);
+}
+
+void gl4_3compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2f(un, u1, u2, vn, v1, v2);
+}
+
+void gl4_3compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid2d(un, u1, u2, vn, v1, v2);
+}
+
+void gl4_3compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1f(un, u1, u2);
+}
+
+void gl4_3compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMapGrid1d(un, u1, u2);
+}
+
+void gl4_3compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl4_3compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points);
+}
+
+void gl4_3compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1f(target, u1, u2, stride, order, points);
+}
+
+void gl4_3compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMap1d(target, u1, u2, stride, order, points);
+}
+
+void gl4_3compat_glPushAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushAttrib(mask);
+}
+
+void gl4_3compat_glPopAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopAttrib();
+}
+
+void gl4_3compat_glAccum(void *_glfuncs, GLenum op, GLfloat value)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glAccum(op, value);
+}
+
+void gl4_3compat_glIndexMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexMask(mask);
+}
+
+void gl4_3compat_glClearIndex(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearIndex(c);
+}
+
+void gl4_3compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClearAccum(red, green, blue, alpha);
+}
+
+void gl4_3compat_glPushName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushName(name);
+}
+
+void gl4_3compat_glPopName(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopName();
+}
+
+void gl4_3compat_glPassThrough(void *_glfuncs, GLfloat token)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPassThrough(token);
+}
+
+void gl4_3compat_glLoadName(void *_glfuncs, GLuint name)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadName(name);
+}
+
+void gl4_3compat_glInitNames(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInitNames();
+}
+
+GLint gl4_3compat_glRenderMode(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glRenderMode(mode);
+}
+
+void gl4_3compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSelectBuffer(size, buffer);
+}
+
+void gl4_3compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFeedbackBuffer(size, gltype, buffer);
+}
+
+void gl4_3compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeniv(coord, pname, params);
+}
+
+void gl4_3compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGeni(coord, pname, param);
+}
+
+void gl4_3compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenfv(coord, pname, params);
+}
+
+void gl4_3compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGenf(coord, pname, param);
+}
+
+void gl4_3compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGendv(coord, pname, params);
+}
+
+void gl4_3compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexGend(coord, pname, param);
+}
+
+void gl4_3compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnviv(target, pname, params);
+}
+
+void gl4_3compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvi(target, pname, param);
+}
+
+void gl4_3compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvfv(target, pname, params);
+}
+
+void gl4_3compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexEnvf(target, pname, param);
+}
+
+void gl4_3compat_glShadeModel(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glShadeModel(mode);
+}
+
+void gl4_3compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPolygonStipple(mask);
+}
+
+void gl4_3compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialiv(face, pname, params);
+}
+
+void gl4_3compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMateriali(face, pname, param);
+}
+
+void gl4_3compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialfv(face, pname, params);
+}
+
+void gl4_3compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMaterialf(face, pname, param);
+}
+
+void gl4_3compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLineStipple(factor, pattern);
+}
+
+void gl4_3compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeliv(pname, params);
+}
+
+void gl4_3compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModeli(pname, param);
+}
+
+void gl4_3compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelfv(pname, params);
+}
+
+void gl4_3compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightModelf(pname, param);
+}
+
+void gl4_3compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightiv(light, pname, params);
+}
+
+void gl4_3compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLighti(light, pname, param);
+}
+
+void gl4_3compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightfv(light, pname, params);
+}
+
+void gl4_3compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLightf(light, pname, param);
+}
+
+void gl4_3compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogiv(pname, params);
+}
+
+void gl4_3compat_glFogi(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogi(pname, param);
+}
+
+void gl4_3compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogfv(pname, params);
+}
+
+void gl4_3compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogf(pname, param);
+}
+
+void gl4_3compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorMaterial(face, mode);
+}
+
+void gl4_3compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClipPlane(plane, equation);
+}
+
+void gl4_3compat_glVertex4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4sv(v);
+}
+
+void gl4_3compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4s(x, y, z, w);
+}
+
+void gl4_3compat_glVertex4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4iv(v);
+}
+
+void gl4_3compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4i(x, y, z, w);
+}
+
+void gl4_3compat_glVertex4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4fv(v);
+}
+
+void gl4_3compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4f(x, y, z, w);
+}
+
+void gl4_3compat_glVertex4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4dv(v);
+}
+
+void gl4_3compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex4d(x, y, z, w);
+}
+
+void gl4_3compat_glVertex3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3sv(v);
+}
+
+void gl4_3compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3s(x, y, z);
+}
+
+void gl4_3compat_glVertex3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3iv(v);
+}
+
+void gl4_3compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3i(x, y, z);
+}
+
+void gl4_3compat_glVertex3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3fv(v);
+}
+
+void gl4_3compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3f(x, y, z);
+}
+
+void gl4_3compat_glVertex3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3dv(v);
+}
+
+void gl4_3compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex3d(x, y, z);
+}
+
+void gl4_3compat_glVertex2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2sv(v);
+}
+
+void gl4_3compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2s(x, y);
+}
+
+void gl4_3compat_glVertex2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2iv(v);
+}
+
+void gl4_3compat_glVertex2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2i(x, y);
+}
+
+void gl4_3compat_glVertex2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2fv(v);
+}
+
+void gl4_3compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2f(x, y);
+}
+
+void gl4_3compat_glVertex2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2dv(v);
+}
+
+void gl4_3compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertex2d(x, y);
+}
+
+void gl4_3compat_glTexCoord4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4sv(v);
+}
+
+void gl4_3compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4s(s, t, r, q);
+}
+
+void gl4_3compat_glTexCoord4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4iv(v);
+}
+
+void gl4_3compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4i(s, t, r, q);
+}
+
+void gl4_3compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4fv(v);
+}
+
+void gl4_3compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4f(s, t, r, q);
+}
+
+void gl4_3compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4dv(v);
+}
+
+void gl4_3compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord4d(s, t, r, q);
+}
+
+void gl4_3compat_glTexCoord3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3sv(v);
+}
+
+void gl4_3compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3s(s, t, r);
+}
+
+void gl4_3compat_glTexCoord3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3iv(v);
+}
+
+void gl4_3compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3i(s, t, r);
+}
+
+void gl4_3compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3fv(v);
+}
+
+void gl4_3compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3f(s, t, r);
+}
+
+void gl4_3compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3dv(v);
+}
+
+void gl4_3compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord3d(s, t, r);
+}
+
+void gl4_3compat_glTexCoord2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2sv(v);
+}
+
+void gl4_3compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2s(s, t);
+}
+
+void gl4_3compat_glTexCoord2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2iv(v);
+}
+
+void gl4_3compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2i(s, t);
+}
+
+void gl4_3compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2fv(v);
+}
+
+void gl4_3compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2f(s, t);
+}
+
+void gl4_3compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2dv(v);
+}
+
+void gl4_3compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord2d(s, t);
+}
+
+void gl4_3compat_glTexCoord1sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1sv(v);
+}
+
+void gl4_3compat_glTexCoord1s(void *_glfuncs, GLshort s)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1s(s);
+}
+
+void gl4_3compat_glTexCoord1iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1iv(v);
+}
+
+void gl4_3compat_glTexCoord1i(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1i(s);
+}
+
+void gl4_3compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1fv(v);
+}
+
+void gl4_3compat_glTexCoord1f(void *_glfuncs, GLfloat s)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1f(s);
+}
+
+void gl4_3compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1dv(v);
+}
+
+void gl4_3compat_glTexCoord1d(void *_glfuncs, GLdouble s)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoord1d(s);
+}
+
+void gl4_3compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectsv(v1, v2);
+}
+
+void gl4_3compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRects(x1, y1, x2, y2);
+}
+
+void gl4_3compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectiv(v1, v2);
+}
+
+void gl4_3compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRecti(x1, y1, x2, y2);
+}
+
+void gl4_3compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectfv(v1, v2);
+}
+
+void gl4_3compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectf(x1, y1, x2, y2);
+}
+
+void gl4_3compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectdv(v1, v2);
+}
+
+void gl4_3compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRectd(x1, y1, x2, y2);
+}
+
+void gl4_3compat_glRasterPos4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4sv(v);
+}
+
+void gl4_3compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4s(x, y, z, w);
+}
+
+void gl4_3compat_glRasterPos4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4iv(v);
+}
+
+void gl4_3compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4i(x, y, z, w);
+}
+
+void gl4_3compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4fv(v);
+}
+
+void gl4_3compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4f(x, y, z, w);
+}
+
+void gl4_3compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4dv(v);
+}
+
+void gl4_3compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos4d(x, y, z, w);
+}
+
+void gl4_3compat_glRasterPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3sv(v);
+}
+
+void gl4_3compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3s(x, y, z);
+}
+
+void gl4_3compat_glRasterPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3iv(v);
+}
+
+void gl4_3compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3i(x, y, z);
+}
+
+void gl4_3compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3fv(v);
+}
+
+void gl4_3compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3f(x, y, z);
+}
+
+void gl4_3compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3dv(v);
+}
+
+void gl4_3compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos3d(x, y, z);
+}
+
+void gl4_3compat_glRasterPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2sv(v);
+}
+
+void gl4_3compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2s(x, y);
+}
+
+void gl4_3compat_glRasterPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2iv(v);
+}
+
+void gl4_3compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2i(x, y);
+}
+
+void gl4_3compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2fv(v);
+}
+
+void gl4_3compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2f(x, y);
+}
+
+void gl4_3compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2dv(v);
+}
+
+void gl4_3compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glRasterPos2d(x, y);
+}
+
+void gl4_3compat_glNormal3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3sv(v);
+}
+
+void gl4_3compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3s(nx, ny, nz);
+}
+
+void gl4_3compat_glNormal3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3iv(v);
+}
+
+void gl4_3compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3i(nx, ny, nz);
+}
+
+void gl4_3compat_glNormal3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3fv(v);
+}
+
+void gl4_3compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3f(nx, ny, nz);
+}
+
+void gl4_3compat_glNormal3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3dv(v);
+}
+
+void gl4_3compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3d(nx, ny, nz);
+}
+
+void gl4_3compat_glNormal3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3bv(v);
+}
+
+void gl4_3compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormal3b(nx, ny, nz);
+}
+
+void gl4_3compat_glIndexsv(void *_glfuncs, const GLshort* c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexsv(c);
+}
+
+void gl4_3compat_glIndexs(void *_glfuncs, GLshort c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexs(c);
+}
+
+void gl4_3compat_glIndexiv(void *_glfuncs, const GLint* c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexiv(c);
+}
+
+void gl4_3compat_glIndexi(void *_glfuncs, GLint c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexi(c);
+}
+
+void gl4_3compat_glIndexfv(void *_glfuncs, const GLfloat* c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexfv(c);
+}
+
+void gl4_3compat_glIndexf(void *_glfuncs, GLfloat c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexf(c);
+}
+
+void gl4_3compat_glIndexdv(void *_glfuncs, const GLdouble* c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexdv(c);
+}
+
+void gl4_3compat_glIndexd(void *_glfuncs, GLdouble c)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexd(c);
+}
+
+void gl4_3compat_glEnd(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnd();
+}
+
+void gl4_3compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagv(flag);
+}
+
+void gl4_3compat_glEdgeFlag(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlag(flag);
+}
+
+void gl4_3compat_glColor4usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4usv(v);
+}
+
+void gl4_3compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4us(red, green, blue, alpha);
+}
+
+void gl4_3compat_glColor4uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4uiv(v);
+}
+
+void gl4_3compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ui(red, green, blue, alpha);
+}
+
+void gl4_3compat_glColor4ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ubv(v);
+}
+
+void gl4_3compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4ub(red, green, blue, alpha);
+}
+
+void gl4_3compat_glColor4sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4sv(v);
+}
+
+void gl4_3compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4s(red, green, blue, alpha);
+}
+
+void gl4_3compat_glColor4iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4iv(v);
+}
+
+void gl4_3compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4i(red, green, blue, alpha);
+}
+
+void gl4_3compat_glColor4fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4fv(v);
+}
+
+void gl4_3compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4f(red, green, blue, alpha);
+}
+
+void gl4_3compat_glColor4dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4dv(v);
+}
+
+void gl4_3compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4d(red, green, blue, alpha);
+}
+
+void gl4_3compat_glColor4bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4bv(v);
+}
+
+void gl4_3compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor4b(red, green, blue, alpha);
+}
+
+void gl4_3compat_glColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3usv(v);
+}
+
+void gl4_3compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3us(red, green, blue);
+}
+
+void gl4_3compat_glColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3uiv(v);
+}
+
+void gl4_3compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ui(red, green, blue);
+}
+
+void gl4_3compat_glColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ubv(v);
+}
+
+void gl4_3compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3ub(red, green, blue);
+}
+
+void gl4_3compat_glColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3sv(v);
+}
+
+void gl4_3compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3s(red, green, blue);
+}
+
+void gl4_3compat_glColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3iv(v);
+}
+
+void gl4_3compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3i(red, green, blue);
+}
+
+void gl4_3compat_glColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3fv(v);
+}
+
+void gl4_3compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3f(red, green, blue);
+}
+
+void gl4_3compat_glColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3dv(v);
+}
+
+void gl4_3compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3d(red, green, blue);
+}
+
+void gl4_3compat_glColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3bv(v);
+}
+
+void gl4_3compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColor3b(red, green, blue);
+}
+
+void gl4_3compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBitmap(width, height, xorig, yorig, xmove, ymove, bitmap);
+}
+
+void gl4_3compat_glBegin(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glBegin(mode);
+}
+
+void gl4_3compat_glListBase(void *_glfuncs, GLuint base)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glListBase(base);
+}
+
+GLuint gl4_3compat_glGenLists(void *_glfuncs, GLsizei range_)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glGenLists(range_);
+}
+
+void gl4_3compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDeleteLists(list, range_);
+}
+
+void gl4_3compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallLists(n, gltype, lists);
+}
+
+void gl4_3compat_glCallList(void *_glfuncs, GLuint list)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCallList(list);
+}
+
+void gl4_3compat_glEndList(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEndList();
+}
+
+void gl4_3compat_glNewList(void *_glfuncs, GLuint list, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNewList(list, mode);
+}
+
+void gl4_3compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPushClientAttrib(mask);
+}
+
+void gl4_3compat_glPopClientAttrib(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPopClientAttrib();
+}
+
+void gl4_3compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glPrioritizeTextures(n, textures, priorities);
+}
+
+GLboolean gl4_3compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ return _qglfuncs->glAreTexturesResident(n, textures, residences);
+}
+
+void gl4_3compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexPointer(size, gltype, stride, pointer);
+}
+
+void gl4_3compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glTexCoordPointer(size, gltype, stride, pointer);
+}
+
+void gl4_3compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glNormalPointer(gltype, stride, pointer);
+}
+
+void gl4_3compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glInterleavedArrays(format, stride, pointer);
+}
+
+void gl4_3compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glIndexPointer(gltype, stride, pointer);
+}
+
+void gl4_3compat_glEnableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEnableClientState(array);
+}
+
+void gl4_3compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glEdgeFlagPointer(stride, pointer);
+}
+
+void gl4_3compat_glDisableClientState(void *_glfuncs, GLenum array)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glDisableClientState(array);
+}
+
+void gl4_3compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorPointer(size, gltype, stride, pointer);
+}
+
+void gl4_3compat_glArrayElement(void *_glfuncs, GLint i)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glArrayElement(i);
+}
+
+void gl4_3compat_glResetMinmax(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetMinmax(target);
+}
+
+void gl4_3compat_glResetHistogram(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glResetHistogram(target);
+}
+
+void gl4_3compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMinmax(target, internalFormat, sink);
+}
+
+void gl4_3compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glHistogram(target, width, internalFormat, sink);
+}
+
+void gl4_3compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmaxParameterfv(target, pname, params);
+}
+
+void gl4_3compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetMinmax(target, reset, format, gltype, values);
+}
+
+void gl4_3compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogramParameterfv(target, pname, params);
+}
+
+void gl4_3compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetHistogram(target, reset, format, gltype, values);
+}
+
+void gl4_3compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSeparableFilter2D(target, internalFormat, width, height, format, gltype, row, column);
+}
+
+void gl4_3compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetSeparableFilter(target, format, gltype, row, column, span);
+}
+
+void gl4_3compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionParameterfv(target, pname, params);
+}
+
+void gl4_3compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetConvolutionFilter(target, format, gltype, image);
+}
+
+void gl4_3compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter2D(target, internalFormat, x, y, width, height);
+}
+
+void gl4_3compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyConvolutionFilter1D(target, internalFormat, x, y, width);
+}
+
+void gl4_3compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameteri(target, pname, params);
+}
+
+void gl4_3compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterfv(target, pname, params);
+}
+
+void gl4_3compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionParameterf(target, pname, params);
+}
+
+void gl4_3compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter2D(target, internalFormat, width, height, format, gltype, image);
+}
+
+void gl4_3compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glConvolutionFilter1D(target, internalFormat, width, format, gltype, image);
+}
+
+void gl4_3compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorSubTable(target, start, x, y, width);
+}
+
+void gl4_3compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorSubTable(target, start, count, format, gltype, data);
+}
+
+void gl4_3compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTableParameterfv(target, pname, params);
+}
+
+void gl4_3compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glGetColorTable(target, format, gltype, table);
+}
+
+void gl4_3compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glCopyColorTable(target, internalFormat, x, y, width);
+}
+
+void gl4_3compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameteriv(target, pname, params);
+}
+
+void gl4_3compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTableParameterfv(target, pname, params);
+}
+
+void gl4_3compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glColorTable(target, internalFormat, width, format, gltype, table);
+}
+
+void gl4_3compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixd(m);
+}
+
+void gl4_3compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultTransposeMatrixf(m);
+}
+
+void gl4_3compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixd(m);
+}
+
+void gl4_3compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glLoadTransposeMatrixf(m);
+}
+
+void gl4_3compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4sv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4s(target, s, t, r, q);
+}
+
+void gl4_3compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4iv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4i(target, s, t, r, q);
+}
+
+void gl4_3compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4fv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4f(target, s, t, r, q);
+}
+
+void gl4_3compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4dv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord4d(target, s, t, r, q);
+}
+
+void gl4_3compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3sv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3s(target, s, t, r);
+}
+
+void gl4_3compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3iv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3i(target, s, t, r);
+}
+
+void gl4_3compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3fv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3f(target, s, t, r);
+}
+
+void gl4_3compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3dv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord3d(target, s, t, r);
+}
+
+void gl4_3compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2sv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2s(target, s, t);
+}
+
+void gl4_3compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2iv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2i(target, s, t);
+}
+
+void gl4_3compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2fv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2f(target, s, t);
+}
+
+void gl4_3compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2dv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord2d(target, s, t);
+}
+
+void gl4_3compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1sv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1s(target, s);
+}
+
+void gl4_3compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1iv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1i(target, s);
+}
+
+void gl4_3compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1fv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1f(target, s);
+}
+
+void gl4_3compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1dv(target, v);
+}
+
+void gl4_3compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glMultiTexCoord1d(target, s);
+}
+
+void gl4_3compat_glClientActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glClientActiveTexture(texture);
+}
+
+void gl4_3compat_glWindowPos3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3sv(v);
+}
+
+void gl4_3compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3s(x, y, z);
+}
+
+void gl4_3compat_glWindowPos3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3iv(v);
+}
+
+void gl4_3compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3i(x, y, z);
+}
+
+void gl4_3compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3fv(v);
+}
+
+void gl4_3compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3f(x, y, z);
+}
+
+void gl4_3compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3dv(v);
+}
+
+void gl4_3compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos3d(x, y, z);
+}
+
+void gl4_3compat_glWindowPos2sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2sv(v);
+}
+
+void gl4_3compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2s(x, y);
+}
+
+void gl4_3compat_glWindowPos2iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2iv(v);
+}
+
+void gl4_3compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2i(x, y);
+}
+
+void gl4_3compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2fv(v);
+}
+
+void gl4_3compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2f(x, y);
+}
+
+void gl4_3compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2dv(v);
+}
+
+void gl4_3compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glWindowPos2d(x, y);
+}
+
+void gl4_3compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColorPointer(size, gltype, stride, pointer);
+}
+
+void gl4_3compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3usv(v);
+}
+
+void gl4_3compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3us(red, green, blue);
+}
+
+void gl4_3compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3uiv(v);
+}
+
+void gl4_3compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ui(red, green, blue);
+}
+
+void gl4_3compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ubv(v);
+}
+
+void gl4_3compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3ub(red, green, blue);
+}
+
+void gl4_3compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3sv(v);
+}
+
+void gl4_3compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3s(red, green, blue);
+}
+
+void gl4_3compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3iv(v);
+}
+
+void gl4_3compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3i(red, green, blue);
+}
+
+void gl4_3compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3fv(v);
+}
+
+void gl4_3compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3f(red, green, blue);
+}
+
+void gl4_3compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3dv(v);
+}
+
+void gl4_3compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3d(red, green, blue);
+}
+
+void gl4_3compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3bv(v);
+}
+
+void gl4_3compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glSecondaryColor3b(red, green, blue);
+}
+
+void gl4_3compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordPointer(gltype, stride, pointer);
+}
+
+void gl4_3compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoorddv(coord);
+}
+
+void gl4_3compat_glFogCoordd(void *_glfuncs, GLdouble coord)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordd(coord);
+}
+
+void gl4_3compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordfv(coord);
+}
+
+void gl4_3compat_glFogCoordf(void *_glfuncs, GLfloat coord)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glFogCoordf(coord);
+}
+
+void gl4_3compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4usv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4uiv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4ubv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4sv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4s(index, x, y, z, w);
+}
+
+void gl4_3compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4iv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gl4_3compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4dv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4d(index, x, y, z, w);
+}
+
+void gl4_3compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4bv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nusv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nuiv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nubv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nub(index, x, y, z, w);
+}
+
+void gl4_3compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nsv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Niv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4Nbv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3sv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3s(index, x, y, z);
+}
+
+void gl4_3compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gl4_3compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3dv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3d(index, x, y, z);
+}
+
+void gl4_3compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2sv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2s(index, x, y);
+}
+
+void gl4_3compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gl4_3compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2dv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2d(index, x, y);
+}
+
+void gl4_3compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1sv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1s(index, x);
+}
+
+void gl4_3compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gl4_3compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1dv(index, v);
+}
+
+void gl4_3compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1d(index, x);
+}
+
+void gl4_3compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4usv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ubv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4sv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4bv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4uiv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3uiv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2uiv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1uiv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4iv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3iv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2iv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1iv(index, v);
+}
+
+void gl4_3compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4ui(index, x, y, z, w);
+}
+
+void gl4_3compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3ui(index, x, y, z);
+}
+
+void gl4_3compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2ui(index, x, y);
+}
+
+void gl4_3compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1ui(index, x);
+}
+
+void gl4_3compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI4i(index, x, y, z, w);
+}
+
+void gl4_3compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI3i(index, x, y, z);
+}
+
+void gl4_3compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI2i(index, x, y);
+}
+
+void gl4_3compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x)
+{
+ QOpenGLFunctions_4_3_Compatibility* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Compatibility*>(_glfuncs);
+ _qglfuncs->glVertexAttribI1i(index, x);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/funcs.h
new file mode 100644
index 000000000..ef3dac794
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/funcs.h
@@ -0,0 +1,965 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl4_3compat_funcs();
+
+void gl4_3compat_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3compat_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl4_3compat_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl4_3compat_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl4_3compat_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_3compat_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl4_3compat_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl4_3compat_glGetError(void *_glfuncs);
+void gl4_3compat_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl4_3compat_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl4_3compat_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_3compat_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl4_3compat_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl4_3compat_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_3compat_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl4_3compat_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl4_3compat_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_3compat_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl4_3compat_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl4_3compat_glFlush(void *_glfuncs);
+void gl4_3compat_glFinish(void *_glfuncs);
+void gl4_3compat_glEnable(void *_glfuncs, GLenum cap);
+void gl4_3compat_glDisable(void *_glfuncs, GLenum cap);
+void gl4_3compat_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl4_3compat_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl4_3compat_glStencilMask(void *_glfuncs, GLuint mask);
+void gl4_3compat_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl4_3compat_glClearStencil(void *_glfuncs, GLint s);
+void gl4_3compat_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_3compat_glClear(void *_glfuncs, GLbitfield mask);
+void gl4_3compat_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl4_3compat_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3compat_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3compat_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_3compat_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_3compat_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_3compat_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_3compat_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3compat_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_3compat_glPointSize(void *_glfuncs, GLfloat size);
+void gl4_3compat_glLineWidth(void *_glfuncs, GLfloat width);
+void gl4_3compat_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl4_3compat_glFrontFace(void *_glfuncs, GLenum mode);
+void gl4_3compat_glCullFace(void *_glfuncs, GLenum mode);
+void gl4_3compat_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl4_3compat_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl4_3compat_glIsTexture(void *_glfuncs, GLuint texture);
+void gl4_3compat_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl4_3compat_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl4_3compat_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl4_3compat_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3compat_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3compat_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3compat_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl4_3compat_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl4_3compat_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl4_3compat_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl4_3compat_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_3compat_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl4_3compat_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3compat_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);
+void gl4_3compat_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3compat_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_3compat_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl4_3compat_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_3compat_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl4_3compat_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_3compat_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_3compat_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);
+void gl4_3compat_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_3compat_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_3compat_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_3compat_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl4_3compat_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_3compat_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_3compat_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl4_3compat_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_3compat_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_3compat_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl4_3compat_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl4_3compat_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl4_3compat_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl4_3compat_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl4_3compat_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl4_3compat_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl4_3compat_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl4_3compat_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl4_3compat_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl4_3compat_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl4_3compat_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl4_3compat_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl4_3compat_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glEndQuery(void *_glfuncs, GLenum target);
+void gl4_3compat_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl4_3compat_glIsQuery(void *_glfuncs, GLuint id);
+void gl4_3compat_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_3compat_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_3compat_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl4_3compat_glValidateProgram(void *_glfuncs, GLuint program);
+void gl4_3compat_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_3compat_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_3compat_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_3compat_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_3compat_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3compat_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3compat_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3compat_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3compat_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_3compat_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_3compat_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl4_3compat_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl4_3compat_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_3compat_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_3compat_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl4_3compat_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl4_3compat_glUseProgram(void *_glfuncs, GLuint program);
+void gl4_3compat_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl4_3compat_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl4_3compat_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl4_3compat_glIsProgram(void *_glfuncs, GLuint program);
+void gl4_3compat_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_3compat_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_3compat_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl4_3compat_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl4_3compat_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_3compat_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl4_3compat_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_3compat_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl4_3compat_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_3compat_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl4_3compat_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_3compat_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl4_3compat_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_3compat_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_3compat_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_3compat_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_3compat_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_3compat_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl4_3compat_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl4_3compat_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl4_3compat_glCreateProgram(void *_glfuncs);
+void gl4_3compat_glCompileShader(void *_glfuncs, GLuint shader);
+void gl4_3compat_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl4_3compat_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_3compat_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl4_3compat_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_3compat_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl4_3compat_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl4_3compat_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl4_3compat_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl4_3compat_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl4_3compat_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl4_3compat_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl4_3compat_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl4_3compat_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl4_3compat_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl4_3compat_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_3compat_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl4_3compat_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl4_3compat_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl4_3compat_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl4_3compat_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl4_3compat_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl4_3compat_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl4_3compat_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl4_3compat_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl4_3compat_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl4_3compat_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl4_3compat_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl4_3compat_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_3compat_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl4_3compat_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl4_3compat_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl4_3compat_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl4_3compat_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl4_3compat_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl4_3compat_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl4_3compat_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl4_3compat_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl4_3compat_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl4_3compat_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_3compat_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_3compat_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_3compat_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_3compat_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_3compat_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_3compat_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_3compat_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl4_3compat_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl4_3compat_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_3compat_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl4_3compat_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl4_3compat_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl4_3compat_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_3compat_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glEndConditionalRender(void *_glfuncs);
+void gl4_3compat_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl4_3compat_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl4_3compat_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl4_3compat_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl4_3compat_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_3compat_glEndTransformFeedback(void *_glfuncs);
+void gl4_3compat_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl4_3compat_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl4_3compat_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_3compat_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_3compat_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl4_3compat_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl4_3compat_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl4_3compat_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl4_3compat_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl4_3compat_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl4_3compat_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl4_3compat_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl4_3compat_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl4_3compat_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl4_3compat_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl4_3compat_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl4_3compat_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl4_3compat_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl4_3compat_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl4_3compat_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl4_3compat_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_3compat_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_3compat_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl4_3compat_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl4_3compat_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl4_3compat_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl4_3compat_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl4_3compat_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl4_3compat_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl4_3compat_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl4_3compat_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl4_3compat_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_3compat_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_3compat_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl4_3compat_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl4_3compat_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl4_3compat_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_3compat_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_3compat_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_3compat_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_3compat_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_3compat_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_3compat_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_3compat_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_3compat_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_3compat_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_3compat_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_3compat_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_3compat_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_3compat_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_3compat_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3compat_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3compat_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_3compat_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_3compat_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_3compat_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_3compat_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_3compat_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_3compat_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_3compat_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_3compat_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3compat_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3compat_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3compat_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3compat_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3compat_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3compat_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3compat_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3compat_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_3compat_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_3compat_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_3compat_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_3compat_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_3compat_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_3compat_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl4_3compat_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl4_3compat_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl4_3compat_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl4_3compat_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_3compat_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_3compat_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl4_3compat_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_3compat_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl4_3compat_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl4_3compat_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_3compat_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl4_3compat_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl4_3compat_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl4_3compat_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl4_3compat_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl4_3compat_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_3compat_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl4_3compat_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+void gl4_3compat_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params);
+void gl4_3compat_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index);
+void gl4_3compat_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id);
+void gl4_3compat_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream);
+void gl4_3compat_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id);
+void gl4_3compat_glResumeTransformFeedback(void *_glfuncs);
+void gl4_3compat_glPauseTransformFeedback(void *_glfuncs);
+GLboolean gl4_3compat_glIsTransformFeedback(void *_glfuncs, GLuint id);
+void gl4_3compat_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_3compat_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_3compat_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id);
+void gl4_3compat_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values);
+void gl4_3compat_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value);
+void gl4_3compat_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values);
+void gl4_3compat_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params);
+void gl4_3compat_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value);
+void gl4_3compat_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_3compat_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_3compat_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
+GLuint gl4_3compat_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+GLint gl4_3compat_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+void gl4_3compat_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params);
+void gl4_3compat_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3compat_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3compat_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3compat_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3compat_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_3compat_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_3compat_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1);
+void gl4_3compat_glUniform1d(void *_glfuncs, GLint location, GLdouble v0);
+void gl4_3compat_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect);
+void gl4_3compat_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect);
+void gl4_3compat_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+void gl4_3compat_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst);
+void gl4_3compat_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+void gl4_3compat_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode);
+void gl4_3compat_glMinSampleShading(void *_glfuncs, GLfloat value);
+void gl4_3compat_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data);
+void gl4_3compat_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data);
+void gl4_3compat_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f);
+void gl4_3compat_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v);
+void gl4_3compat_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_3compat_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+void gl4_3compat_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v);
+void gl4_3compat_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_3compat_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+void gl4_3compat_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v);
+void gl4_3compat_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_3compat_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3compat_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3compat_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3compat_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3compat_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_3compat_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_3compat_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_3compat_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_3compat_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_3compat_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_3compat_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3compat_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3compat_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_3compat_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_3compat_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3compat_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_3compat_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3compat_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_3compat_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_3compat_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_3compat_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_3compat_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_3compat_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3compat_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_3compat_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3compat_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_3compat_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_3compat_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_3compat_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_3compat_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1);
+void gl4_3compat_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3compat_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1);
+void gl4_3compat_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3compat_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1);
+void gl4_3compat_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_3compat_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1);
+void gl4_3compat_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_3compat_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0);
+void gl4_3compat_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3compat_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0);
+void gl4_3compat_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3compat_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0);
+void gl4_3compat_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_3compat_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0);
+void gl4_3compat_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params);
+GLboolean gl4_3compat_glIsProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_3compat_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines);
+void gl4_3compat_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines);
+void gl4_3compat_glBindProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_3compat_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program);
+void gl4_3compat_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program);
+void gl4_3compat_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value);
+void gl4_3compat_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_3compat_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
+void gl4_3compat_glClearDepthf(void *_glfuncs, GLfloat dd);
+void gl4_3compat_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f);
+void gl4_3compat_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision);
+void gl4_3compat_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_3compat_glReleaseShaderCompiler(void *_glfuncs);
+void gl4_3compat_glTexStorage3D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth);
+void gl4_3compat_glTexStorage2D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_3compat_glTexStorage1D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width);
+void gl4_3compat_glMemoryBarrier(void *_glfuncs, GLbitfield barriers);
+void gl4_3compat_glBindImageTexture(void *_glfuncs, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+void gl4_3compat_glGetActiveAtomicCounterBufferiv(void *_glfuncs, GLuint program, GLuint bufferIndex, GLenum pname, GLint* params);
+void gl4_3compat_glGetInternalformativ(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint* params);
+void gl4_3compat_glDrawTransformFeedbackStreamInstanced(void *_glfuncs, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+void gl4_3compat_glDrawTransformFeedbackInstanced(void *_glfuncs, GLenum mode, GLuint id, GLsizei instancecount);
+void gl4_3compat_glDrawElementsInstancedBaseVertexBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+void gl4_3compat_glDrawElementsInstancedBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLuint baseinstance);
+void gl4_3compat_glDrawArraysInstancedBaseInstance(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+void gl4_3compat_glTexStorage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_3compat_glTexStorage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_3compat_glTexBufferRange(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_3compat_glShaderStorageBlockBinding(void *_glfuncs, GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
+GLint gl4_3compat_glGetProgramResourceLocationIndex(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name);
+GLint gl4_3compat_glGetProgramResourceLocation(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name);
+void gl4_3compat_glGetProgramResourceiv(void *_glfuncs, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params);
+void gl4_3compat_glGetProgramResourceName(void *_glfuncs, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+GLuint gl4_3compat_glGetProgramResourceIndex(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name);
+void gl4_3compat_glGetProgramInterfaceiv(void *_glfuncs, GLuint program, GLenum programInterface, GLenum pname, GLint* params);
+void gl4_3compat_glMultiDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect, GLsizei drawcount, GLsizei stride);
+void gl4_3compat_glMultiDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect, GLsizei drawcount, GLsizei stride);
+void gl4_3compat_glInvalidateSubFramebuffer(void *_glfuncs, GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3compat_glInvalidateFramebuffer(void *_glfuncs, GLenum target, GLsizei numAttachments, const GLenum* attachments);
+void gl4_3compat_glInvalidateBufferData(void *_glfuncs, GLuint buffer);
+void gl4_3compat_glInvalidateBufferSubData(void *_glfuncs, GLuint buffer, GLintptr offset, GLsizeiptr length);
+void gl4_3compat_glInvalidateTexImage(void *_glfuncs, GLuint texture, GLint level);
+void gl4_3compat_glInvalidateTexSubImage(void *_glfuncs, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
+void gl4_3compat_glGetInternalformati64v(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint64* params);
+void gl4_3compat_glGetFramebufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glFramebufferParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_3compat_glVertexBindingDivisor(void *_glfuncs, GLuint bindingindex, GLuint divisor);
+void gl4_3compat_glVertexAttribBinding(void *_glfuncs, GLuint attribindex, GLuint bindingindex);
+void gl4_3compat_glVertexAttribLFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLuint relativeoffset);
+void gl4_3compat_glVertexAttribIFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLuint relativeoffset);
+void gl4_3compat_glVertexAttribFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLboolean normalized, GLuint relativeoffset);
+void gl4_3compat_glBindVertexBuffer(void *_glfuncs, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+void gl4_3compat_glTextureView(void *_glfuncs, GLuint texture, GLenum target, GLuint origtexture, GLenum internalFormat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+void gl4_3compat_glCopyImageSubData(void *_glfuncs, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+void gl4_3compat_glDispatchComputeIndirect(void *_glfuncs, GLintptr indirect);
+void gl4_3compat_glDispatchCompute(void *_glfuncs, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
+void gl4_3compat_glClearBufferSubData(void *_glfuncs, GLenum target, GLenum internalFormat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum gltype, const GLvoid* data);
+void gl4_3compat_glClearBufferData(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum format, GLenum gltype, const GLvoid* data);
+void gl4_3compat_glTranslatef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_3compat_glTranslated(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_3compat_glScalef(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_3compat_glScaled(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_3compat_glRotatef(void *_glfuncs, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void gl4_3compat_glRotated(void *_glfuncs, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void gl4_3compat_glPushMatrix(void *_glfuncs);
+void gl4_3compat_glPopMatrix(void *_glfuncs);
+void gl4_3compat_glOrtho(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void gl4_3compat_glMultMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_3compat_glMultMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_3compat_glMatrixMode(void *_glfuncs, GLenum mode);
+void gl4_3compat_glLoadMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_3compat_glLoadMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_3compat_glLoadIdentity(void *_glfuncs);
+void gl4_3compat_glFrustum(void *_glfuncs, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLboolean gl4_3compat_glIsList(void *_glfuncs, GLuint list);
+void gl4_3compat_glGetTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, GLint* params);
+void gl4_3compat_glGetTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetTexGendv(void *_glfuncs, GLenum coord, GLenum pname, GLdouble* params);
+void gl4_3compat_glGetTexEnviv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glGetTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetPolygonStipple(void *_glfuncs, GLubyte* mask);
+void gl4_3compat_glGetPixelMapusv(void *_glfuncs, GLenum glmap, GLushort* values);
+void gl4_3compat_glGetPixelMapuiv(void *_glfuncs, GLenum glmap, GLuint* values);
+void gl4_3compat_glGetPixelMapfv(void *_glfuncs, GLenum glmap, GLfloat* values);
+void gl4_3compat_glGetMaterialiv(void *_glfuncs, GLenum face, GLenum pname, GLint* params);
+void gl4_3compat_glGetMaterialfv(void *_glfuncs, GLenum face, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetMapiv(void *_glfuncs, GLenum target, GLenum query, GLint* v);
+void gl4_3compat_glGetMapfv(void *_glfuncs, GLenum target, GLenum query, GLfloat* v);
+void gl4_3compat_glGetMapdv(void *_glfuncs, GLenum target, GLenum query, GLdouble* v);
+void gl4_3compat_glGetLightiv(void *_glfuncs, GLenum light, GLenum pname, GLint* params);
+void gl4_3compat_glGetLightfv(void *_glfuncs, GLenum light, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetClipPlane(void *_glfuncs, GLenum plane, GLdouble* equation);
+void gl4_3compat_glDrawPixels(void *_glfuncs, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3compat_glCopyPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum gltype);
+void gl4_3compat_glPixelMapusv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLushort* values);
+void gl4_3compat_glPixelMapuiv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLuint* values);
+void gl4_3compat_glPixelMapfv(void *_glfuncs, GLenum glmap, GLint mapsize, const GLfloat* values);
+void gl4_3compat_glPixelTransferi(void *_glfuncs, GLenum pname, GLint param);
+void gl4_3compat_glPixelTransferf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_3compat_glPixelZoom(void *_glfuncs, GLfloat xfactor, GLfloat yfactor);
+void gl4_3compat_glAlphaFunc(void *_glfuncs, GLenum glfunc, GLfloat ref);
+void gl4_3compat_glEvalPoint2(void *_glfuncs, GLint i, GLint j);
+void gl4_3compat_glEvalMesh2(void *_glfuncs, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void gl4_3compat_glEvalPoint1(void *_glfuncs, GLint i);
+void gl4_3compat_glEvalMesh1(void *_glfuncs, GLenum mode, GLint i1, GLint i2);
+void gl4_3compat_glEvalCoord2fv(void *_glfuncs, const GLfloat* u);
+void gl4_3compat_glEvalCoord2f(void *_glfuncs, GLfloat u, GLfloat v);
+void gl4_3compat_glEvalCoord2dv(void *_glfuncs, const GLdouble* u);
+void gl4_3compat_glEvalCoord2d(void *_glfuncs, GLdouble u, GLdouble v);
+void gl4_3compat_glEvalCoord1fv(void *_glfuncs, const GLfloat* u);
+void gl4_3compat_glEvalCoord1f(void *_glfuncs, GLfloat u);
+void gl4_3compat_glEvalCoord1dv(void *_glfuncs, const GLdouble* u);
+void gl4_3compat_glEvalCoord1d(void *_glfuncs, GLdouble u);
+void gl4_3compat_glMapGrid2f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void gl4_3compat_glMapGrid2d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void gl4_3compat_glMapGrid1f(void *_glfuncs, GLint un, GLfloat u1, GLfloat u2);
+void gl4_3compat_glMapGrid1d(void *_glfuncs, GLint un, GLdouble u1, GLdouble u2);
+void gl4_3compat_glMap2f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points);
+void gl4_3compat_glMap2d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points);
+void gl4_3compat_glMap1f(void *_glfuncs, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points);
+void gl4_3compat_glMap1d(void *_glfuncs, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points);
+void gl4_3compat_glPushAttrib(void *_glfuncs, GLbitfield mask);
+void gl4_3compat_glPopAttrib(void *_glfuncs);
+void gl4_3compat_glAccum(void *_glfuncs, GLenum op, GLfloat value);
+void gl4_3compat_glIndexMask(void *_glfuncs, GLuint mask);
+void gl4_3compat_glClearIndex(void *_glfuncs, GLfloat c);
+void gl4_3compat_glClearAccum(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_3compat_glPushName(void *_glfuncs, GLuint name);
+void gl4_3compat_glPopName(void *_glfuncs);
+void gl4_3compat_glPassThrough(void *_glfuncs, GLfloat token);
+void gl4_3compat_glLoadName(void *_glfuncs, GLuint name);
+void gl4_3compat_glInitNames(void *_glfuncs);
+GLint gl4_3compat_glRenderMode(void *_glfuncs, GLenum mode);
+void gl4_3compat_glSelectBuffer(void *_glfuncs, GLsizei size, GLuint* buffer);
+void gl4_3compat_glFeedbackBuffer(void *_glfuncs, GLsizei size, GLenum gltype, GLfloat* buffer);
+void gl4_3compat_glTexGeniv(void *_glfuncs, GLenum coord, GLenum pname, const GLint* params);
+void gl4_3compat_glTexGeni(void *_glfuncs, GLenum coord, GLenum pname, GLint param);
+void gl4_3compat_glTexGenfv(void *_glfuncs, GLenum coord, GLenum pname, const GLfloat* params);
+void gl4_3compat_glTexGenf(void *_glfuncs, GLenum coord, GLenum pname, GLfloat param);
+void gl4_3compat_glTexGendv(void *_glfuncs, GLenum coord, GLenum pname, const GLdouble* params);
+void gl4_3compat_glTexGend(void *_glfuncs, GLenum coord, GLenum pname, GLdouble param);
+void gl4_3compat_glTexEnviv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_3compat_glTexEnvi(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_3compat_glTexEnvfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_3compat_glTexEnvf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_3compat_glShadeModel(void *_glfuncs, GLenum mode);
+void gl4_3compat_glPolygonStipple(void *_glfuncs, const GLubyte* mask);
+void gl4_3compat_glMaterialiv(void *_glfuncs, GLenum face, GLenum pname, const GLint* params);
+void gl4_3compat_glMateriali(void *_glfuncs, GLenum face, GLenum pname, GLint param);
+void gl4_3compat_glMaterialfv(void *_glfuncs, GLenum face, GLenum pname, const GLfloat* params);
+void gl4_3compat_glMaterialf(void *_glfuncs, GLenum face, GLenum pname, GLfloat param);
+void gl4_3compat_glLineStipple(void *_glfuncs, GLint factor, GLushort pattern);
+void gl4_3compat_glLightModeliv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_3compat_glLightModeli(void *_glfuncs, GLenum pname, GLint param);
+void gl4_3compat_glLightModelfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_3compat_glLightModelf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_3compat_glLightiv(void *_glfuncs, GLenum light, GLenum pname, const GLint* params);
+void gl4_3compat_glLighti(void *_glfuncs, GLenum light, GLenum pname, GLint param);
+void gl4_3compat_glLightfv(void *_glfuncs, GLenum light, GLenum pname, const GLfloat* params);
+void gl4_3compat_glLightf(void *_glfuncs, GLenum light, GLenum pname, GLfloat param);
+void gl4_3compat_glFogiv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_3compat_glFogi(void *_glfuncs, GLenum pname, GLint param);
+void gl4_3compat_glFogfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_3compat_glFogf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_3compat_glColorMaterial(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_3compat_glClipPlane(void *_glfuncs, GLenum plane, const GLdouble* equation);
+void gl4_3compat_glVertex4sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glVertex4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_3compat_glVertex4iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glVertex4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl4_3compat_glVertex4fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glVertex4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_3compat_glVertex4dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glVertex4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_3compat_glVertex3sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glVertex3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_3compat_glVertex3iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glVertex3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_3compat_glVertex3fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glVertex3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_3compat_glVertex3dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glVertex3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_3compat_glVertex2sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glVertex2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_3compat_glVertex2iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glVertex2i(void *_glfuncs, GLint x, GLint y);
+void gl4_3compat_glVertex2fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glVertex2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_3compat_glVertex2dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glVertex2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_3compat_glTexCoord4sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glTexCoord4s(void *_glfuncs, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl4_3compat_glTexCoord4iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glTexCoord4i(void *_glfuncs, GLint s, GLint t, GLint r, GLint q);
+void gl4_3compat_glTexCoord4fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glTexCoord4f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl4_3compat_glTexCoord4dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glTexCoord4d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl4_3compat_glTexCoord3sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glTexCoord3s(void *_glfuncs, GLshort s, GLshort t, GLshort r);
+void gl4_3compat_glTexCoord3iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glTexCoord3i(void *_glfuncs, GLint s, GLint t, GLint r);
+void gl4_3compat_glTexCoord3fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glTexCoord3f(void *_glfuncs, GLfloat s, GLfloat t, GLfloat r);
+void gl4_3compat_glTexCoord3dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glTexCoord3d(void *_glfuncs, GLdouble s, GLdouble t, GLdouble r);
+void gl4_3compat_glTexCoord2sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glTexCoord2s(void *_glfuncs, GLshort s, GLshort t);
+void gl4_3compat_glTexCoord2iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glTexCoord2i(void *_glfuncs, GLint s, GLint t);
+void gl4_3compat_glTexCoord2fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glTexCoord2f(void *_glfuncs, GLfloat s, GLfloat t);
+void gl4_3compat_glTexCoord2dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glTexCoord2d(void *_glfuncs, GLdouble s, GLdouble t);
+void gl4_3compat_glTexCoord1sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glTexCoord1s(void *_glfuncs, GLshort s);
+void gl4_3compat_glTexCoord1iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glTexCoord1i(void *_glfuncs, GLint s);
+void gl4_3compat_glTexCoord1fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glTexCoord1f(void *_glfuncs, GLfloat s);
+void gl4_3compat_glTexCoord1dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glTexCoord1d(void *_glfuncs, GLdouble s);
+void gl4_3compat_glRectsv(void *_glfuncs, const GLshort* v1, const GLshort* v2);
+void gl4_3compat_glRects(void *_glfuncs, GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void gl4_3compat_glRectiv(void *_glfuncs, const GLint* v1, const GLint* v2);
+void gl4_3compat_glRecti(void *_glfuncs, GLint x1, GLint y1, GLint x2, GLint y2);
+void gl4_3compat_glRectfv(void *_glfuncs, const GLfloat* v1, const GLfloat* v2);
+void gl4_3compat_glRectf(void *_glfuncs, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void gl4_3compat_glRectdv(void *_glfuncs, const GLdouble* v1, const GLdouble* v2);
+void gl4_3compat_glRectd(void *_glfuncs, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void gl4_3compat_glRasterPos4sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glRasterPos4s(void *_glfuncs, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_3compat_glRasterPos4iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glRasterPos4i(void *_glfuncs, GLint x, GLint y, GLint z, GLint w);
+void gl4_3compat_glRasterPos4fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glRasterPos4f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_3compat_glRasterPos4dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glRasterPos4d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_3compat_glRasterPos3sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glRasterPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_3compat_glRasterPos3iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glRasterPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_3compat_glRasterPos3fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glRasterPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_3compat_glRasterPos3dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glRasterPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_3compat_glRasterPos2sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glRasterPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_3compat_glRasterPos2iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glRasterPos2i(void *_glfuncs, GLint x, GLint y);
+void gl4_3compat_glRasterPos2fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glRasterPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_3compat_glRasterPos2dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glRasterPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_3compat_glNormal3sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glNormal3s(void *_glfuncs, GLshort nx, GLshort ny, GLshort nz);
+void gl4_3compat_glNormal3iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glNormal3i(void *_glfuncs, GLint nx, GLint ny, GLint nz);
+void gl4_3compat_glNormal3fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glNormal3f(void *_glfuncs, GLfloat nx, GLfloat ny, GLfloat nz);
+void gl4_3compat_glNormal3dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glNormal3d(void *_glfuncs, GLdouble nx, GLdouble ny, GLdouble nz);
+void gl4_3compat_glNormal3bv(void *_glfuncs, const GLbyte* v);
+void gl4_3compat_glNormal3b(void *_glfuncs, GLbyte nx, GLbyte ny, GLbyte nz);
+void gl4_3compat_glIndexsv(void *_glfuncs, const GLshort* c);
+void gl4_3compat_glIndexs(void *_glfuncs, GLshort c);
+void gl4_3compat_glIndexiv(void *_glfuncs, const GLint* c);
+void gl4_3compat_glIndexi(void *_glfuncs, GLint c);
+void gl4_3compat_glIndexfv(void *_glfuncs, const GLfloat* c);
+void gl4_3compat_glIndexf(void *_glfuncs, GLfloat c);
+void gl4_3compat_glIndexdv(void *_glfuncs, const GLdouble* c);
+void gl4_3compat_glIndexd(void *_glfuncs, GLdouble c);
+void gl4_3compat_glEnd(void *_glfuncs);
+void gl4_3compat_glEdgeFlagv(void *_glfuncs, const GLboolean* flag);
+void gl4_3compat_glEdgeFlag(void *_glfuncs, GLboolean flag);
+void gl4_3compat_glColor4usv(void *_glfuncs, const GLushort* v);
+void gl4_3compat_glColor4us(void *_glfuncs, GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void gl4_3compat_glColor4uiv(void *_glfuncs, const GLuint* v);
+void gl4_3compat_glColor4ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void gl4_3compat_glColor4ubv(void *_glfuncs, const GLubyte* v);
+void gl4_3compat_glColor4ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void gl4_3compat_glColor4sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glColor4s(void *_glfuncs, GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void gl4_3compat_glColor4iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glColor4i(void *_glfuncs, GLint red, GLint green, GLint blue, GLint alpha);
+void gl4_3compat_glColor4fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glColor4f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_3compat_glColor4dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glColor4d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void gl4_3compat_glColor4bv(void *_glfuncs, const GLbyte* v);
+void gl4_3compat_glColor4b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void gl4_3compat_glColor3usv(void *_glfuncs, const GLushort* v);
+void gl4_3compat_glColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl4_3compat_glColor3uiv(void *_glfuncs, const GLuint* v);
+void gl4_3compat_glColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl4_3compat_glColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl4_3compat_glColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl4_3compat_glColor3sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl4_3compat_glColor3iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl4_3compat_glColor3fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl4_3compat_glColor3dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl4_3compat_glColor3bv(void *_glfuncs, const GLbyte* v);
+void gl4_3compat_glColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl4_3compat_glBitmap(void *_glfuncs, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte* bitmap);
+void gl4_3compat_glBegin(void *_glfuncs, GLenum mode);
+void gl4_3compat_glListBase(void *_glfuncs, GLuint base);
+GLuint gl4_3compat_glGenLists(void *_glfuncs, GLsizei range_);
+void gl4_3compat_glDeleteLists(void *_glfuncs, GLuint list, GLsizei range_);
+void gl4_3compat_glCallLists(void *_glfuncs, GLsizei n, GLenum gltype, const GLvoid* lists);
+void gl4_3compat_glCallList(void *_glfuncs, GLuint list);
+void gl4_3compat_glEndList(void *_glfuncs);
+void gl4_3compat_glNewList(void *_glfuncs, GLuint list, GLenum mode);
+void gl4_3compat_glPushClientAttrib(void *_glfuncs, GLbitfield mask);
+void gl4_3compat_glPopClientAttrib(void *_glfuncs);
+void gl4_3compat_glPrioritizeTextures(void *_glfuncs, GLsizei n, const GLuint* textures, const GLfloat* priorities);
+GLboolean gl4_3compat_glAreTexturesResident(void *_glfuncs, GLsizei n, const GLuint* textures, GLboolean* residences);
+void gl4_3compat_glVertexPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glTexCoordPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glNormalPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glInterleavedArrays(void *_glfuncs, GLenum format, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glIndexPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glEnableClientState(void *_glfuncs, GLenum array);
+void gl4_3compat_glEdgeFlagPointer(void *_glfuncs, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glDisableClientState(void *_glfuncs, GLenum array);
+void gl4_3compat_glColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glArrayElement(void *_glfuncs, GLint i);
+void gl4_3compat_glResetMinmax(void *_glfuncs, GLenum target);
+void gl4_3compat_glResetHistogram(void *_glfuncs, GLenum target);
+void gl4_3compat_glMinmax(void *_glfuncs, GLenum target, GLenum internalFormat, GLboolean sink);
+void gl4_3compat_glHistogram(void *_glfuncs, GLenum target, GLsizei width, GLenum internalFormat, GLboolean sink);
+void gl4_3compat_glGetMinmaxParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glGetMinmaxParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetMinmax(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl4_3compat_glGetHistogramParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glGetHistogramParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetHistogram(void *_glfuncs, GLenum target, GLboolean reset, GLenum format, GLenum gltype, GLvoid* values);
+void gl4_3compat_glSeparableFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* row, const GLvoid* column);
+void gl4_3compat_glGetSeparableFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* row, GLvoid* column, GLvoid* span);
+void gl4_3compat_glGetConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glGetConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetConvolutionFilter(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* image);
+void gl4_3compat_glCopyConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3compat_glCopyConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl4_3compat_glConvolutionParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_3compat_glConvolutionParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint params);
+void gl4_3compat_glConvolutionParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_3compat_glConvolutionParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat params);
+void gl4_3compat_glConvolutionFilter2D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* image);
+void gl4_3compat_glConvolutionFilter1D(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* image);
+void gl4_3compat_glCopyColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+void gl4_3compat_glColorSubTable(void *_glfuncs, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum gltype, const GLvoid* data);
+void gl4_3compat_glGetColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3compat_glGetColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_3compat_glGetColorTable(void *_glfuncs, GLenum target, GLenum format, GLenum gltype, GLvoid* table);
+void gl4_3compat_glCopyColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+void gl4_3compat_glColorTableParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_3compat_glColorTableParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_3compat_glColorTable(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum gltype, const GLvoid* table);
+void gl4_3compat_glMultTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_3compat_glMultTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_3compat_glLoadTransposeMatrixd(void *_glfuncs, const GLdouble* m);
+void gl4_3compat_glLoadTransposeMatrixf(void *_glfuncs, const GLfloat* m);
+void gl4_3compat_glMultiTexCoord4sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_3compat_glMultiTexCoord4s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+void gl4_3compat_glMultiTexCoord4iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_3compat_glMultiTexCoord4i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r, GLint q);
+void gl4_3compat_glMultiTexCoord4fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_3compat_glMultiTexCoord4f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void gl4_3compat_glMultiTexCoord4dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_3compat_glMultiTexCoord4d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void gl4_3compat_glMultiTexCoord3sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_3compat_glMultiTexCoord3s(void *_glfuncs, GLenum target, GLshort s, GLshort t, GLshort r);
+void gl4_3compat_glMultiTexCoord3iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_3compat_glMultiTexCoord3i(void *_glfuncs, GLenum target, GLint s, GLint t, GLint r);
+void gl4_3compat_glMultiTexCoord3fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_3compat_glMultiTexCoord3f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t, GLfloat r);
+void gl4_3compat_glMultiTexCoord3dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_3compat_glMultiTexCoord3d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t, GLdouble r);
+void gl4_3compat_glMultiTexCoord2sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_3compat_glMultiTexCoord2s(void *_glfuncs, GLenum target, GLshort s, GLshort t);
+void gl4_3compat_glMultiTexCoord2iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_3compat_glMultiTexCoord2i(void *_glfuncs, GLenum target, GLint s, GLint t);
+void gl4_3compat_glMultiTexCoord2fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_3compat_glMultiTexCoord2f(void *_glfuncs, GLenum target, GLfloat s, GLfloat t);
+void gl4_3compat_glMultiTexCoord2dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_3compat_glMultiTexCoord2d(void *_glfuncs, GLenum target, GLdouble s, GLdouble t);
+void gl4_3compat_glMultiTexCoord1sv(void *_glfuncs, GLenum target, const GLshort* v);
+void gl4_3compat_glMultiTexCoord1s(void *_glfuncs, GLenum target, GLshort s);
+void gl4_3compat_glMultiTexCoord1iv(void *_glfuncs, GLenum target, const GLint* v);
+void gl4_3compat_glMultiTexCoord1i(void *_glfuncs, GLenum target, GLint s);
+void gl4_3compat_glMultiTexCoord1fv(void *_glfuncs, GLenum target, const GLfloat* v);
+void gl4_3compat_glMultiTexCoord1f(void *_glfuncs, GLenum target, GLfloat s);
+void gl4_3compat_glMultiTexCoord1dv(void *_glfuncs, GLenum target, const GLdouble* v);
+void gl4_3compat_glMultiTexCoord1d(void *_glfuncs, GLenum target, GLdouble s);
+void gl4_3compat_glClientActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_3compat_glWindowPos3sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glWindowPos3s(void *_glfuncs, GLshort x, GLshort y, GLshort z);
+void gl4_3compat_glWindowPos3iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glWindowPos3i(void *_glfuncs, GLint x, GLint y, GLint z);
+void gl4_3compat_glWindowPos3fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glWindowPos3f(void *_glfuncs, GLfloat x, GLfloat y, GLfloat z);
+void gl4_3compat_glWindowPos3dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glWindowPos3d(void *_glfuncs, GLdouble x, GLdouble y, GLdouble z);
+void gl4_3compat_glWindowPos2sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glWindowPos2s(void *_glfuncs, GLshort x, GLshort y);
+void gl4_3compat_glWindowPos2iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glWindowPos2i(void *_glfuncs, GLint x, GLint y);
+void gl4_3compat_glWindowPos2fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glWindowPos2f(void *_glfuncs, GLfloat x, GLfloat y);
+void gl4_3compat_glWindowPos2dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glWindowPos2d(void *_glfuncs, GLdouble x, GLdouble y);
+void gl4_3compat_glSecondaryColorPointer(void *_glfuncs, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glSecondaryColor3usv(void *_glfuncs, const GLushort* v);
+void gl4_3compat_glSecondaryColor3us(void *_glfuncs, GLushort red, GLushort green, GLushort blue);
+void gl4_3compat_glSecondaryColor3uiv(void *_glfuncs, const GLuint* v);
+void gl4_3compat_glSecondaryColor3ui(void *_glfuncs, GLuint red, GLuint green, GLuint blue);
+void gl4_3compat_glSecondaryColor3ubv(void *_glfuncs, const GLubyte* v);
+void gl4_3compat_glSecondaryColor3ub(void *_glfuncs, GLubyte red, GLubyte green, GLubyte blue);
+void gl4_3compat_glSecondaryColor3sv(void *_glfuncs, const GLshort* v);
+void gl4_3compat_glSecondaryColor3s(void *_glfuncs, GLshort red, GLshort green, GLshort blue);
+void gl4_3compat_glSecondaryColor3iv(void *_glfuncs, const GLint* v);
+void gl4_3compat_glSecondaryColor3i(void *_glfuncs, GLint red, GLint green, GLint blue);
+void gl4_3compat_glSecondaryColor3fv(void *_glfuncs, const GLfloat* v);
+void gl4_3compat_glSecondaryColor3f(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue);
+void gl4_3compat_glSecondaryColor3dv(void *_glfuncs, const GLdouble* v);
+void gl4_3compat_glSecondaryColor3d(void *_glfuncs, GLdouble red, GLdouble green, GLdouble blue);
+void gl4_3compat_glSecondaryColor3bv(void *_glfuncs, const GLbyte* v);
+void gl4_3compat_glSecondaryColor3b(void *_glfuncs, GLbyte red, GLbyte green, GLbyte blue);
+void gl4_3compat_glFogCoordPointer(void *_glfuncs, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3compat_glFogCoorddv(void *_glfuncs, const GLdouble* coord);
+void gl4_3compat_glFogCoordd(void *_glfuncs, GLdouble coord);
+void gl4_3compat_glFogCoordfv(void *_glfuncs, const GLfloat* coord);
+void gl4_3compat_glFogCoordf(void *_glfuncs, GLfloat coord);
+void gl4_3compat_glVertexAttrib4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_3compat_glVertexAttrib4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_3compat_glVertexAttrib4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_3compat_glVertexAttrib4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_3compat_glVertexAttrib4s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+void gl4_3compat_glVertexAttrib4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_3compat_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_3compat_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gl4_3compat_glVertexAttrib4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3compat_glVertexAttrib4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_3compat_glVertexAttrib4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_3compat_glVertexAttrib4Nusv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_3compat_glVertexAttrib4Nuiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_3compat_glVertexAttrib4Nubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_3compat_glVertexAttrib4Nub(void *_glfuncs, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+void gl4_3compat_glVertexAttrib4Nsv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_3compat_glVertexAttrib4Niv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_3compat_glVertexAttrib4Nbv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_3compat_glVertexAttrib3sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_3compat_glVertexAttrib3s(void *_glfuncs, GLuint index, GLshort x, GLshort y, GLshort z);
+void gl4_3compat_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_3compat_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gl4_3compat_glVertexAttrib3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3compat_glVertexAttrib3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_3compat_glVertexAttrib2sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_3compat_glVertexAttrib2s(void *_glfuncs, GLuint index, GLshort x, GLshort y);
+void gl4_3compat_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_3compat_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gl4_3compat_glVertexAttrib2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3compat_glVertexAttrib2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_3compat_glVertexAttrib1sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_3compat_glVertexAttrib1s(void *_glfuncs, GLuint index, GLshort x);
+void gl4_3compat_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_3compat_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gl4_3compat_glVertexAttrib1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3compat_glVertexAttrib1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_3compat_glVertexAttribI4usv(void *_glfuncs, GLuint index, const GLushort* v);
+void gl4_3compat_glVertexAttribI4ubv(void *_glfuncs, GLuint index, const GLubyte* v);
+void gl4_3compat_glVertexAttribI4sv(void *_glfuncs, GLuint index, const GLshort* v);
+void gl4_3compat_glVertexAttribI4bv(void *_glfuncs, GLuint index, const GLbyte* v);
+void gl4_3compat_glVertexAttribI4uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_3compat_glVertexAttribI3uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_3compat_glVertexAttribI2uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_3compat_glVertexAttribI1uiv(void *_glfuncs, GLuint index, const GLuint* v);
+void gl4_3compat_glVertexAttribI4iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_3compat_glVertexAttribI3iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_3compat_glVertexAttribI2iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_3compat_glVertexAttribI1iv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_3compat_glVertexAttribI4ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+void gl4_3compat_glVertexAttribI3ui(void *_glfuncs, GLuint index, GLuint x, GLuint y, GLuint z);
+void gl4_3compat_glVertexAttribI2ui(void *_glfuncs, GLuint index, GLuint x, GLuint y);
+void gl4_3compat_glVertexAttribI1ui(void *_glfuncs, GLuint index, GLuint x);
+void gl4_3compat_glVertexAttribI4i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z, GLint w);
+void gl4_3compat_glVertexAttribI3i(void *_glfuncs, GLuint index, GLint x, GLint y, GLint z);
+void gl4_3compat_glVertexAttribI2i(void *_glfuncs, GLuint index, GLint x, GLint y);
+void gl4_3compat_glVertexAttribI1i(void *_glfuncs, GLuint index, GLint x);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/gl.go
new file mode 100644
index 000000000..4ee8a9ef6
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3compat/gl.go
@@ -0,0 +1,9845 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 4.3 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl4_3compat_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 4.3 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 4.3 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+ FIXED = 0x140C
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_DEBUG_BIT = 0x00000002
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ ALL_BARRIER_BITS = 0xFFFFFFFF
+ ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
+ BUFFER_UPDATE_BARRIER_BIT = 0x00000200
+ COMMAND_BARRIER_BIT = 0x00000040
+ ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
+ FRAMEBUFFER_BARRIER_BIT = 0x00000400
+ PIXEL_BUFFER_BARRIER_BIT = 0x00000080
+ SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
+ SHADER_STORAGE_BARRIER_BIT = 0x00002000
+ TEXTURE_FETCH_BARRIER_BIT = 0x00000008
+ TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
+ TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
+ UNIFORM_BARRIER_BIT = 0x00000004
+ VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ PATCHES = 0x000E
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ VERTEX_SHADER_BIT = 0x00000001
+ FRAGMENT_SHADER_BIT = 0x00000002
+ GEOMETRY_SHADER_BIT = 0x00000004
+ TESS_CONTROL_SHADER_BIT = 0x00000008
+ TESS_EVALUATION_SHADER_BIT = 0x00000010
+ COMPUTE_SHADER_BIT = 0x00000020
+ ALL_SHADER_BITS = 0xFFFFFFFF
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ INDEX = 0x8222
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
+ DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
+ DEBUG_CALLBACK_FUNCTION = 0x8244
+ DEBUG_CALLBACK_USER_PARAM = 0x8245
+ DEBUG_SOURCE_API = 0x8246
+ DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
+ DEBUG_SOURCE_SHADER_COMPILER = 0x8248
+ DEBUG_SOURCE_THIRD_PARTY = 0x8249
+ DEBUG_SOURCE_APPLICATION = 0x824A
+ DEBUG_SOURCE_OTHER = 0x824B
+ DEBUG_TYPE_ERROR = 0x824C
+ DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
+ DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
+ DEBUG_TYPE_PORTABILITY = 0x824F
+ DEBUG_TYPE_PERFORMANCE = 0x8250
+ DEBUG_TYPE_OTHER = 0x8251
+ PROGRAM_SEPARABLE = 0x8258
+ ACTIVE_PROGRAM = 0x8259
+ PROGRAM_PIPELINE_BINDING = 0x825A
+ MAX_VIEWPORTS = 0x825B
+ VIEWPORT_SUBPIXEL_BITS = 0x825C
+ VIEWPORT_BOUNDS_RANGE = 0x825D
+ LAYER_PROVOKING_VERTEX = 0x825E
+ VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+ UNDEFINED_VERTEX = 0x8260
+ MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
+ MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
+ MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
+ MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
+ MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
+ COMPUTE_WORK_GROUP_SIZE = 0x8267
+ DEBUG_TYPE_MARKER = 0x8268
+ DEBUG_TYPE_PUSH_GROUP = 0x8269
+ DEBUG_TYPE_POP_GROUP = 0x826A
+ DEBUG_SEVERITY_NOTIFICATION = 0x826B
+ MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
+ DEBUG_GROUP_STACK_DEPTH = 0x826D
+ MAX_UNIFORM_LOCATIONS = 0x826E
+ INTERNALFORMAT_SUPPORTED = 0x826F
+ INTERNALFORMAT_PREFERRED = 0x8270
+ INTERNALFORMAT_RED_SIZE = 0x8271
+ INTERNALFORMAT_GREEN_SIZE = 0x8272
+ INTERNALFORMAT_BLUE_SIZE = 0x8273
+ INTERNALFORMAT_ALPHA_SIZE = 0x8274
+ INTERNALFORMAT_DEPTH_SIZE = 0x8275
+ INTERNALFORMAT_STENCIL_SIZE = 0x8276
+ INTERNALFORMAT_SHARED_SIZE = 0x8277
+ INTERNALFORMAT_RED_TYPE = 0x8278
+ INTERNALFORMAT_GREEN_TYPE = 0x8279
+ INTERNALFORMAT_BLUE_TYPE = 0x827A
+ INTERNALFORMAT_ALPHA_TYPE = 0x827B
+ INTERNALFORMAT_DEPTH_TYPE = 0x827C
+ INTERNALFORMAT_STENCIL_TYPE = 0x827D
+ MAX_WIDTH = 0x827E
+ MAX_HEIGHT = 0x827F
+ MAX_DEPTH = 0x8280
+ MAX_LAYERS = 0x8281
+ MAX_COMBINED_DIMENSIONS = 0x8282
+ COLOR_COMPONENTS = 0x8283
+ DEPTH_COMPONENTS = 0x8284
+ STENCIL_COMPONENTS = 0x8285
+ COLOR_RENDERABLE = 0x8286
+ DEPTH_RENDERABLE = 0x8287
+ STENCIL_RENDERABLE = 0x8288
+ FRAMEBUFFER_RENDERABLE = 0x8289
+ FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
+ FRAMEBUFFER_BLEND = 0x828B
+ READ_PIXELS = 0x828C
+ READ_PIXELS_FORMAT = 0x828D
+ READ_PIXELS_TYPE = 0x828E
+ TEXTURE_IMAGE_FORMAT = 0x828F
+ TEXTURE_IMAGE_TYPE = 0x8290
+ GET_TEXTURE_IMAGE_FORMAT = 0x8291
+ GET_TEXTURE_IMAGE_TYPE = 0x8292
+ MIPMAP = 0x8293
+ MANUAL_GENERATE_MIPMAP = 0x8294
+ AUTO_GENERATE_MIPMAP = 0x8295
+ COLOR_ENCODING = 0x8296
+ SRGB_READ = 0x8297
+ SRGB_WRITE = 0x8298
+ FILTER = 0x829A
+ VERTEX_TEXTURE = 0x829B
+ TESS_CONTROL_TEXTURE = 0x829C
+ TESS_EVALUATION_TEXTURE = 0x829D
+ GEOMETRY_TEXTURE = 0x829E
+ FRAGMENT_TEXTURE = 0x829F
+ COMPUTE_TEXTURE = 0x82A0
+ TEXTURE_SHADOW = 0x82A1
+ TEXTURE_GATHER = 0x82A2
+ TEXTURE_GATHER_SHADOW = 0x82A3
+ SHADER_IMAGE_LOAD = 0x82A4
+ SHADER_IMAGE_STORE = 0x82A5
+ SHADER_IMAGE_ATOMIC = 0x82A6
+ IMAGE_TEXEL_SIZE = 0x82A7
+ IMAGE_COMPATIBILITY_CLASS = 0x82A8
+ IMAGE_PIXEL_FORMAT = 0x82A9
+ IMAGE_PIXEL_TYPE = 0x82AA
+ SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
+ SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
+ SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
+ SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
+ TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
+ TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
+ TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
+ CLEAR_BUFFER = 0x82B4
+ TEXTURE_VIEW = 0x82B5
+ VIEW_COMPATIBILITY_CLASS = 0x82B6
+ FULL_SUPPORT = 0x82B7
+ CAVEAT_SUPPORT = 0x82B8
+ IMAGE_CLASS_4_X_32 = 0x82B9
+ IMAGE_CLASS_2_X_32 = 0x82BA
+ IMAGE_CLASS_1_X_32 = 0x82BB
+ IMAGE_CLASS_4_X_16 = 0x82BC
+ IMAGE_CLASS_2_X_16 = 0x82BD
+ IMAGE_CLASS_1_X_16 = 0x82BE
+ IMAGE_CLASS_4_X_8 = 0x82BF
+ IMAGE_CLASS_2_X_8 = 0x82C0
+ IMAGE_CLASS_1_X_8 = 0x82C1
+ IMAGE_CLASS_11_11_10 = 0x82C2
+ IMAGE_CLASS_10_10_10_2 = 0x82C3
+ VIEW_CLASS_128_BITS = 0x82C4
+ VIEW_CLASS_96_BITS = 0x82C5
+ VIEW_CLASS_64_BITS = 0x82C6
+ VIEW_CLASS_48_BITS = 0x82C7
+ VIEW_CLASS_32_BITS = 0x82C8
+ VIEW_CLASS_24_BITS = 0x82C9
+ VIEW_CLASS_16_BITS = 0x82CA
+ VIEW_CLASS_8_BITS = 0x82CB
+ VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
+ VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
+ VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
+ VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
+ VIEW_CLASS_RGTC1_RED = 0x82D0
+ VIEW_CLASS_RGTC2_RG = 0x82D1
+ VIEW_CLASS_BPTC_UNORM = 0x82D2
+ VIEW_CLASS_BPTC_FLOAT = 0x82D3
+ VERTEX_ATTRIB_BINDING = 0x82D4
+ VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
+ VERTEX_BINDING_DIVISOR = 0x82D6
+ VERTEX_BINDING_OFFSET = 0x82D7
+ VERTEX_BINDING_STRIDE = 0x82D8
+ MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
+ MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
+ TEXTURE_VIEW_MIN_LEVEL = 0x82DB
+ TEXTURE_VIEW_NUM_LEVELS = 0x82DC
+ TEXTURE_VIEW_MIN_LAYER = 0x82DD
+ TEXTURE_VIEW_NUM_LAYERS = 0x82DE
+ TEXTURE_IMMUTABLE_LEVELS = 0x82DF
+ BUFFER = 0x82E0
+ SHADER = 0x82E1
+ PROGRAM = 0x82E2
+ QUERY = 0x82E3
+ PROGRAM_PIPELINE = 0x82E4
+ SAMPLER = 0x82E6
+ DISPLAY_LIST = 0x82E7
+ MAX_LABEL_LENGTH = 0x82E8
+ NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ PROGRAM_BINARY_LENGTH = 0x8741
+ VERTEX_ATTRIB_ARRAY_LONG = 0x874E
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+ PROGRAM_BINARY_FORMATS = 0x87FF
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+ MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ GEOMETRY_SHADER_INVOCATIONS = 0x887F
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+ IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_LUMINANCE_TYPE = 0x8C14
+ TEXTURE_INTENSITY_TYPE = 0x8C15
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ SAMPLE_SHADING = 0x8C36
+ MIN_SAMPLE_SHADING_VALUE = 0x8C37
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGB565 = 0x8D62
+ PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
+ ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
+ MAX_ELEMENT_INDEX = 0x8D6B
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ ACTIVE_SUBROUTINES = 0x8DE5
+ ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+ MAX_SUBROUTINES = 0x8DE7
+ MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+ LOW_FLOAT = 0x8DF0
+ MEDIUM_FLOAT = 0x8DF1
+ HIGH_FLOAT = 0x8DF2
+ LOW_INT = 0x8DF3
+ MEDIUM_INT = 0x8DF4
+ HIGH_INT = 0x8DF5
+ SHADER_BINARY_FORMATS = 0x8DF8
+ NUM_SHADER_BINARY_FORMATS = 0x8DF9
+ SHADER_COMPILER = 0x8DFA
+ MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+ MAX_VARYING_VECTORS = 0x8DFC
+ MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+ MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+ TRANSFORM_FEEDBACK = 0x8E22
+ TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+ TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+ TRANSFORM_FEEDBACK_BINDING = 0x8E25
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+ ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+ ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+ NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+ COMPATIBLE_SUBROUTINES = 0x8E4B
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+ MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+ MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+ FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+ MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+ MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+ MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+ MAX_VERTEX_STREAMS = 0x8E71
+ PATCH_VERTICES = 0x8E72
+ PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+ PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+ TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+ TESS_GEN_MODE = 0x8E76
+ TESS_GEN_SPACING = 0x8E77
+ TESS_GEN_VERTEX_ORDER = 0x8E78
+ TESS_GEN_POINT_MODE = 0x8E79
+ ISOLINES = 0x8E7A
+ FRACTIONAL_ODD = 0x8E7B
+ FRACTIONAL_EVEN = 0x8E7C
+ MAX_PATCH_VERTICES = 0x8E7D
+ MAX_TESS_GEN_LEVEL = 0x8E7E
+ MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+ MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+ MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+ MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+ MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+ MAX_TESS_PATCH_COMPONENTS = 0x8E84
+ MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+ MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+ TESS_EVALUATION_SHADER = 0x8E87
+ TESS_CONTROL_SHADER = 0x8E88
+ MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+ MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+ COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C
+ COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D
+ COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E
+ COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ MAX_IMAGE_UNITS = 0x8F38
+ MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
+ MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
+ IMAGE_BINDING_NAME = 0x8F3A
+ IMAGE_BINDING_LEVEL = 0x8F3B
+ IMAGE_BINDING_LAYERED = 0x8F3C
+ IMAGE_BINDING_LAYER = 0x8F3D
+ IMAGE_BINDING_ACCESS = 0x8F3E
+ DRAW_INDIRECT_BUFFER = 0x8F3F
+ DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+ DOUBLE_MAT2 = 0x8F46
+ DOUBLE_MAT3 = 0x8F47
+ DOUBLE_MAT4 = 0x8F48
+ DOUBLE_MAT2x3 = 0x8F49
+ DOUBLE_MAT2x4 = 0x8F4A
+ DOUBLE_MAT3x2 = 0x8F4B
+ DOUBLE_MAT3x4 = 0x8F4C
+ DOUBLE_MAT4x2 = 0x8F4D
+ DOUBLE_MAT4x3 = 0x8F4E
+ VERTEX_BINDING_BUFFER = 0x8F4F
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ DOUBLE_VEC2 = 0x8FFC
+ DOUBLE_VEC3 = 0x8FFD
+ DOUBLE_VEC4 = 0x8FFE
+ TEXTURE_CUBE_MAP_ARRAY = 0x9009
+ TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+ PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
+ SAMPLER_CUBE_MAP_ARRAY = 0x900C
+ SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+ INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+ UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+ IMAGE_1D = 0x904C
+ IMAGE_2D = 0x904D
+ IMAGE_3D = 0x904E
+ IMAGE_2D_RECT = 0x904F
+ IMAGE_CUBE = 0x9050
+ IMAGE_BUFFER = 0x9051
+ IMAGE_1D_ARRAY = 0x9052
+ IMAGE_2D_ARRAY = 0x9053
+ IMAGE_CUBE_MAP_ARRAY = 0x9054
+ IMAGE_2D_MULTISAMPLE = 0x9055
+ IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
+ INT_IMAGE_1D = 0x9057
+ INT_IMAGE_2D = 0x9058
+ INT_IMAGE_3D = 0x9059
+ INT_IMAGE_2D_RECT = 0x905A
+ INT_IMAGE_CUBE = 0x905B
+ INT_IMAGE_BUFFER = 0x905C
+ INT_IMAGE_1D_ARRAY = 0x905D
+ INT_IMAGE_2D_ARRAY = 0x905E
+ INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
+ INT_IMAGE_2D_MULTISAMPLE = 0x9060
+ INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
+ UNSIGNED_INT_IMAGE_1D = 0x9062
+ UNSIGNED_INT_IMAGE_2D = 0x9063
+ UNSIGNED_INT_IMAGE_3D = 0x9064
+ UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
+ UNSIGNED_INT_IMAGE_CUBE = 0x9066
+ UNSIGNED_INT_IMAGE_BUFFER = 0x9067
+ UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
+ UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
+ UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
+ MAX_IMAGE_SAMPLES = 0x906D
+ IMAGE_BINDING_FORMAT = 0x906E
+ RGB10_A2UI = 0x906F
+ MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
+ IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
+ IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
+ IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
+ MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
+ MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
+ MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
+ MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
+ MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
+ MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
+ SHADER_STORAGE_BUFFER = 0x90D2
+ SHADER_STORAGE_BUFFER_BINDING = 0x90D3
+ SHADER_STORAGE_BUFFER_START = 0x90D4
+ SHADER_STORAGE_BUFFER_SIZE = 0x90D5
+ MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
+ MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
+ MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
+ MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
+ MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
+ MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
+ MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
+ MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
+ MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
+ SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
+ DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
+ MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
+ UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
+ DISPATCH_INDIRECT_BUFFER = 0x90EE
+ DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+ UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
+ UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
+ UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
+ UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
+ PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
+ PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
+ PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
+ PACK_COMPRESSED_BLOCK_SIZE = 0x912E
+ TEXTURE_IMMUTABLE_FORMAT = 0x912F
+ MAX_DEBUG_MESSAGE_LENGTH = 0x9143
+ MAX_DEBUG_LOGGED_MESSAGES = 0x9144
+ DEBUG_LOGGED_MESSAGES = 0x9145
+ DEBUG_SEVERITY_HIGH = 0x9146
+ DEBUG_SEVERITY_MEDIUM = 0x9147
+ DEBUG_SEVERITY_LOW = 0x9148
+ TEXTURE_BUFFER_OFFSET = 0x919D
+ TEXTURE_BUFFER_SIZE = 0x919E
+ TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
+ COMPUTE_SHADER = 0x91B9
+ MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
+ MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
+ MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
+ MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
+ MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
+ COMPRESSED_R11_EAC = 0x9270
+ COMPRESSED_SIGNED_R11_EAC = 0x9271
+ COMPRESSED_RG11_EAC = 0x9272
+ COMPRESSED_SIGNED_RG11_EAC = 0x9273
+ COMPRESSED_RGB8_ETC2 = 0x9274
+ COMPRESSED_SRGB8_ETC2 = 0x9275
+ COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
+ COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
+ COMPRESSED_RGBA8_ETC2_EAC = 0x9278
+ COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
+ ATOMIC_COUNTER_BUFFER = 0x92C0
+ ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
+ ATOMIC_COUNTER_BUFFER_START = 0x92C2
+ ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
+ ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
+ MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
+ MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
+ MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
+ MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
+ MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
+ MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
+ MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
+ MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
+ MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
+ MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
+ MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
+ MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
+ MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
+ ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
+ UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
+ UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
+ MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
+ DEBUG_OUTPUT = 0x92E0
+ UNIFORM = 0x92E1
+ UNIFORM_BLOCK = 0x92E2
+ PROGRAM_INPUT = 0x92E3
+ PROGRAM_OUTPUT = 0x92E4
+ BUFFER_VARIABLE = 0x92E5
+ SHADER_STORAGE_BLOCK = 0x92E6
+ IS_PER_PATCH = 0x92E7
+ VERTEX_SUBROUTINE = 0x92E8
+ TESS_CONTROL_SUBROUTINE = 0x92E9
+ TESS_EVALUATION_SUBROUTINE = 0x92EA
+ GEOMETRY_SUBROUTINE = 0x92EB
+ FRAGMENT_SUBROUTINE = 0x92EC
+ COMPUTE_SUBROUTINE = 0x92ED
+ VERTEX_SUBROUTINE_UNIFORM = 0x92EE
+ TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
+ TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
+ GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
+ FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
+ COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
+ TRANSFORM_FEEDBACK_VARYING = 0x92F4
+ ACTIVE_RESOURCES = 0x92F5
+ MAX_NAME_LENGTH = 0x92F6
+ MAX_NUM_ACTIVE_VARIABLES = 0x92F7
+ MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
+ NAME_LENGTH = 0x92F9
+ TYPE = 0x92FA
+ ARRAY_SIZE = 0x92FB
+ OFFSET = 0x92FC
+ BLOCK_INDEX = 0x92FD
+ ARRAY_STRIDE = 0x92FE
+ MATRIX_STRIDE = 0x92FF
+ IS_ROW_MAJOR = 0x9300
+ ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
+ BUFFER_BINDING = 0x9302
+ BUFFER_DATA_SIZE = 0x9303
+ NUM_ACTIVE_VARIABLES = 0x9304
+ ACTIVE_VARIABLES = 0x9305
+ REFERENCED_BY_VERTEX_SHADER = 0x9306
+ REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
+ REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
+ REFERENCED_BY_GEOMETRY_SHADER = 0x9309
+ REFERENCED_BY_FRAGMENT_SHADER = 0x930A
+ REFERENCED_BY_COMPUTE_SHADER = 0x930B
+ TOP_LEVEL_ARRAY_SIZE = 0x930C
+ TOP_LEVEL_ARRAY_STRIDE = 0x930D
+ LOCATION = 0x930E
+ LOCATION_INDEX = 0x930F
+ FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
+ FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
+ FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
+ FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
+ FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
+ MAX_FRAMEBUFFER_WIDTH = 0x9315
+ MAX_FRAMEBUFFER_HEIGHT = 0x9316
+ MAX_FRAMEBUFFER_LAYERS = 0x9317
+ MAX_FRAMEBUFFER_SAMPLES = 0x9318
+ NUM_SAMPLE_COUNTS = 0x9380
+)
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl4_3compat_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl4_3compat_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl4_3compat_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl4_3compat_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl4_3compat_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl4_3compat_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl4_3compat_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl4_3compat_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl4_3compat_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl4_3compat_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl4_3compat_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_3compat_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl4_3compat_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl4_3compat_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl4_3compat_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl4_3compat_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl4_3compat_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl4_3compat_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl4_3compat_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl4_3compat_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl4_3compat_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl4_3compat_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl4_3compat_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl4_3compat_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl4_3compat_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl4_3compat_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_3compat_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl4_3compat_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl4_3compat_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl4_3compat_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl4_3compat_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl4_3compat_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl4_3compat_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl4_3compat_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl4_3compat_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl4_3compat_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl4_3compat_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl4_3compat_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl4_3compat_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl4_3compat_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl4_3compat_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl4_3compat_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl4_3compat_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl4_3compat_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl4_3compat_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl4_3compat_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl4_3compat_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl4_3compat_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl4_3compat_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl4_3compat_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl4_3compat_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl4_3compat_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl4_3compat_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl4_3compat_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl4_3compat_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl4_3compat_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl4_3compat_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl4_3compat_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl4_3compat_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl4_3compat_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_3compat_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_3compat_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_3compat_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl4_3compat_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl4_3compat_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl4_3compat_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl4_3compat_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl4_3compat_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl4_3compat_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl4_3compat_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl4_3compat_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl4_3compat_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl4_3compat_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl4_3compat_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl4_3compat_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl4_3compat_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_3compat_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl4_3compat_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl4_3compat_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl4_3compat_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_3compat_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_3compat_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_3compat_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl4_3compat_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl4_3compat_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_3compat_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_3compat_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl4_3compat_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl4_3compat_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl4_3compat_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl4_3compat_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl4_3compat_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl4_3compat_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl4_3compat_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_3compat_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl4_3compat_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl4_3compat_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl4_3compat_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl4_3compat_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_3compat_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl4_3compat_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_3compat_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_3compat_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_3compat_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_3compat_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_3compat_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl4_3compat_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_3compat_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_3compat_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_3compat_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_3compat_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_3compat_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl4_3compat_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl4_3compat_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl4_3compat_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl4_3compat_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl4_3compat_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl4_3compat_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_3compat_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl4_3compat_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_3compat_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl4_3compat_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl4_3compat_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_3compat_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl4_3compat_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl4_3compat_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl4_3compat_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl4_3compat_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl4_3compat_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl4_3compat_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl4_3compat_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl4_3compat_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl4_3compat_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl4_3compat_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl4_3compat_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl4_3compat_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_3compat_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl4_3compat_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl4_3compat_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_3compat_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl4_3compat_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_3compat_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_3compat_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl4_3compat_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl4_3compat_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_3compat_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl4_3compat_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl4_3compat_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl4_3compat_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl4_3compat_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_3compat_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_3compat_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl4_3compat_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl4_3compat_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl4_3compat_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl4_3compat_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl4_3compat_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_3compat_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_3compat_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl4_3compat_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl4_3compat_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl4_3compat_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_3compat_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_3compat_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_3compat_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_3compat_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl4_3compat_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_3compat_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl4_3compat_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl4_3compat_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl4_3compat_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl4_3compat_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl4_3compat_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl4_3compat_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_3compat_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl4_3compat_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl4_3compat_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl4_3compat_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl4_3compat_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl4_3compat_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl4_3compat_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl4_3compat_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl4_3compat_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl4_3compat_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl4_3compat_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl4_3compat_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl4_3compat_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl4_3compat_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl4_3compat_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl4_3compat_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl4_3compat_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_3compat_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl4_3compat_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl4_3compat_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl4_3compat_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_3compat_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl4_3compat_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl4_3compat_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl4_3compat_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl4_3compat_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl4_3compat_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl4_3compat_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl4_3compat_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl4_3compat_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl4_3compat_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_3compat_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl4_3compat_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl4_3compat_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_3compat_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_3compat_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_3compat_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_3compat_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_3compat_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_3compat_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_3compat_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_3compat_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_3compat_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_3compat_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_3compat_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl4_3compat_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_3compat_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_3compat_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3compat_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3compat_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_3compat_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_3compat_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_3compat_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_3compat_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_3compat_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_3compat_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_3compat_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_3compat_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3compat_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3compat_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3compat_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3compat_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3compat_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3compat_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3compat_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3compat_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_3compat_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl4_3compat_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_3compat_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl4_3compat_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_3compat_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl4_3compat_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl4_3compat_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl4_3compat_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl4_3compat_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_3compat_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl4_3compat_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_3compat_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl4_3compat_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl4_3compat_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_3compat_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl4_3compat_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl4_3compat_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl4_3compat_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl4_3compat_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl4_3compat_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_3compat_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl4_3compat_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl4_3compat_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryIndexediv.xml
+func (gl *GL) GetQueryIndexediv(target glbase.Enum, index uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetQueryIndexediv(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQueryIndexed.xml
+func (gl *GL) EndQueryIndexed(target glbase.Enum, index uint32) {
+ C.gl4_3compat_glEndQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
+func (gl *GL) BeginQueryIndexed(target glbase.Enum, index, id uint32) {
+ C.gl4_3compat_glBeginQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStream.xml
+func (gl *GL) DrawTransformFeedbackStream(mode glbase.Enum, id, stream uint32) {
+ C.gl4_3compat_glDrawTransformFeedbackStream(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedback.xml
+func (gl *GL) DrawTransformFeedback(mode glbase.Enum, id uint32) {
+ C.gl4_3compat_glDrawTransformFeedback(gl.funcs, C.GLenum(mode), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResumeTransformFeedback.xml
+func (gl *GL) ResumeTransformFeedback() {
+ C.gl4_3compat_glResumeTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPauseTransformFeedback.xml
+func (gl *GL) PauseTransformFeedback() {
+ C.gl4_3compat_glPauseTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTransformFeedback.xml
+func (gl *GL) IsTransformFeedback(id uint32) bool {
+ glresult := C.gl4_3compat_glIsTransformFeedback(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenTransformFeedbacks.xml
+func (gl *GL) GenTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_3compat_glGenTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTransformFeedbacks.xml
+func (gl *GL) DeleteTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_3compat_glDeleteTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTransformFeedback.xml
+func (gl *GL) BindTransformFeedback(target glbase.Enum, id uint32) {
+ C.gl4_3compat_glBindTransformFeedback(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameterfv.xml
+func (gl *GL) PatchParameterfv(pname glbase.Enum, values []float32) {
+ C.gl4_3compat_glPatchParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameteri.xml
+func (gl *GL) PatchParameteri(pname glbase.Enum, value int32) {
+ C.gl4_3compat_glPatchParameteri(gl.funcs, C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramStageiv.xml
+func (gl *GL) GetProgramStageiv(program glbase.Program, shadertype, pname glbase.Enum, values []int32) {
+ C.gl4_3compat_glGetProgramStageiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformSubroutineuiv.xml
+func (gl *GL) GetUniformSubroutineuiv(shadertype glbase.Enum, location glbase.Uniform, params []uint32) {
+ C.gl4_3compat_glGetUniformSubroutineuiv(gl.funcs, C.GLenum(shadertype), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformSubroutinesuiv.xml
+func (gl *GL) UniformSubroutinesuiv(shadertype glbase.Enum, count int, value []uint32) {
+ C.gl4_3compat_glUniformSubroutinesuiv(gl.funcs, C.GLenum(shadertype), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineName.xml
+func (gl *GL) GetActiveSubroutineName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_3compat_glGetActiveSubroutineName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformName.xml
+func (gl *GL) GetActiveSubroutineUniformName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_3compat_glGetActiveSubroutineUniformName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformiv.xml
+func (gl *GL) GetActiveSubroutineUniformiv(program glbase.Program, shadertype glbase.Enum, index uint32, pname glbase.Enum, values []int32) {
+ C.gl4_3compat_glGetActiveSubroutineUniformiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineIndex.xml
+func (gl *GL) GetSubroutineIndex(program glbase.Program, shadertype glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_3compat_glGetSubroutineIndex(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineUniformLocation.xml
+func (gl *GL) GetSubroutineUniformLocation(program glbase.Program, shadertype glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_3compat_glGetSubroutineUniformLocation(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformdv.xml
+func (gl *GL) GetUniformdv(program glbase.Program, location glbase.Uniform, params []float64) {
+ C.gl4_3compat_glGetUniformdv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x3dv.xml
+func (gl *GL) UniformMatrix4x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3compat_glUniformMatrix4x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x2dv.xml
+func (gl *GL) UniformMatrix4x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3compat_glUniformMatrix4x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x4dv.xml
+func (gl *GL) UniformMatrix3x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3compat_glUniformMatrix3x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x2dv.xml
+func (gl *GL) UniformMatrix3x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3compat_glUniformMatrix3x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x4dv.xml
+func (gl *GL) UniformMatrix2x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3compat_glUniformMatrix2x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x3dv.xml
+func (gl *GL) UniformMatrix2x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3compat_glUniformMatrix2x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4dv.xml
+func (gl *GL) UniformMatrix4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3compat_glUniformMatrix4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3dv.xml
+func (gl *GL) UniformMatrix3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3compat_glUniformMatrix3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2dv.xml
+func (gl *GL) UniformMatrix2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3compat_glUniformMatrix2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4dv.xml
+func (gl *GL) Uniform4dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_3compat_glUniform4dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3dv.xml
+func (gl *GL) Uniform3dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_3compat_glUniform3dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2dv.xml
+func (gl *GL) Uniform2dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_3compat_glUniform2dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1dv.xml
+func (gl *GL) Uniform1dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_3compat_glUniform1dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4d.xml
+func (gl *GL) Uniform4d(location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_3compat_glUniform4d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3d.xml
+func (gl *GL) Uniform3d(location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_3compat_glUniform3d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2d.xml
+func (gl *GL) Uniform2d(location glbase.Uniform, v0, v1 float64) {
+ C.gl4_3compat_glUniform2d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1d.xml
+func (gl *GL) Uniform1d(location glbase.Uniform, v0 float64) {
+ C.gl4_3compat_glUniform1d(gl.funcs, C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsIndirect.xml
+func (gl *GL) DrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysIndirect.xml
+func (gl *GL) DrawArraysIndirect(mode glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparatei.xml
+func (gl *GL) BlendFuncSeparatei(buf uint32, srcRGB, dstRGB, srcAlpha, dstAlpha glbase.Enum) {
+ C.gl4_3compat_glBlendFuncSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(srcRGB), C.GLenum(dstRGB), C.GLenum(srcAlpha), C.GLenum(dstAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunci.xml
+func (gl *GL) BlendFunci(buf uint32, src, dst glbase.Enum) {
+ C.gl4_3compat_glBlendFunci(gl.funcs, C.GLuint(buf), C.GLenum(src), C.GLenum(dst))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparatei.xml
+func (gl *GL) BlendEquationSeparatei(buf uint32, modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_3compat_glBlendEquationSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationi.xml
+func (gl *GL) BlendEquationi(buf uint32, mode glbase.Enum) {
+ C.gl4_3compat_glBlendEquationi(gl.funcs, C.GLuint(buf), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinSampleShading.xml
+func (gl *GL) MinSampleShading(value float32) {
+ C.gl4_3compat_glMinSampleShading(gl.funcs, C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublei_v.xml
+func (gl *GL) GetDoublei_v(target glbase.Enum, index uint32, data []float64) {
+ C.gl4_3compat_glGetDoublei_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloati_v.xml
+func (gl *GL) GetFloati_v(target glbase.Enum, index uint32, data []float32) {
+ C.gl4_3compat_glGetFloati_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeIndexed.xml
+func (gl *GL) DepthRangeIndexed(index uint32, n, f float64) {
+ C.gl4_3compat_glDepthRangeIndexed(gl.funcs, C.GLuint(index), C.GLdouble(n), C.GLdouble(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeArrayv.xml
+func (gl *GL) DepthRangeArrayv(first uint32, count int, v []float64) {
+ C.gl4_3compat_glDepthRangeArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexedv.xml
+func (gl *GL) ScissorIndexedv(index uint32, v []int32) {
+ C.gl4_3compat_glScissorIndexedv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexed.xml
+func (gl *GL) ScissorIndexed(index uint32, left, bottom int32, width, height int) {
+ C.gl4_3compat_glScissorIndexed(gl.funcs, C.GLuint(index), C.GLint(left), C.GLint(bottom), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorArrayv.xml
+func (gl *GL) ScissorArrayv(first uint32, count int, v []int32) {
+ C.gl4_3compat_glScissorArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedfv.xml
+func (gl *GL) ViewportIndexedfv(index uint32, v []float32) {
+ C.gl4_3compat_glViewportIndexedfv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedf.xml
+func (gl *GL) ViewportIndexedf(index uint32, x, y, w, h float32) {
+ C.gl4_3compat_glViewportIndexedf(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(w), C.GLfloat(h))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportArrayv.xml
+func (gl *GL) ViewportArrayv(first uint32, count int, v []float32) {
+ C.gl4_3compat_glViewportArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribLdv.xml
+func (gl *GL) GetVertexAttribLdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ C.gl4_3compat_glGetVertexAttribLdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribLPointer.xml
+func (gl *GL) VertexAttribLPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glVertexAttribLPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4dv.xml
+func (gl *GL) VertexAttribL4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttribL4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3dv.xml
+func (gl *GL) VertexAttribL3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttribL3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2dv.xml
+func (gl *GL) VertexAttribL2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttribL2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1dv.xml
+func (gl *GL) VertexAttribL1dv(index glbase.Attrib, v []float64) {
+ C.gl4_3compat_glVertexAttribL1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4d.xml
+func (gl *GL) VertexAttribL4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_3compat_glVertexAttribL4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3d.xml
+func (gl *GL) VertexAttribL3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_3compat_glVertexAttribL3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2d.xml
+func (gl *GL) VertexAttribL2d(index glbase.Attrib, x, y float64) {
+ C.gl4_3compat_glVertexAttribL2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1d.xml
+func (gl *GL) VertexAttribL1d(index glbase.Attrib, x float64) {
+ C.gl4_3compat_glVertexAttribL1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineInfoLog.xml
+func (gl *GL) GetProgramPipelineInfoLog(pipeline uint32, bufSize int32, length []int32, infoLog []byte) {
+ C.gl4_3compat_glGetProgramPipelineInfoLog(gl.funcs, C.GLuint(pipeline), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgramPipeline.xml
+func (gl *GL) ValidateProgramPipeline(pipeline uint32) {
+ C.gl4_3compat_glValidateProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3dv.xml
+func (gl *GL) ProgramUniformMatrix4x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix4x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4dv.xml
+func (gl *GL) ProgramUniformMatrix3x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix3x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2dv.xml
+func (gl *GL) ProgramUniformMatrix4x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix4x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4dv.xml
+func (gl *GL) ProgramUniformMatrix2x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix2x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2dv.xml
+func (gl *GL) ProgramUniformMatrix3x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix3x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3dv.xml
+func (gl *GL) ProgramUniformMatrix2x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix2x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3fv.xml
+func (gl *GL) ProgramUniformMatrix4x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix4x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4fv.xml
+func (gl *GL) ProgramUniformMatrix3x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix3x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2fv.xml
+func (gl *GL) ProgramUniformMatrix4x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix4x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4fv.xml
+func (gl *GL) ProgramUniformMatrix2x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix2x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2fv.xml
+func (gl *GL) ProgramUniformMatrix3x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix3x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3fv.xml
+func (gl *GL) ProgramUniformMatrix2x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix2x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4dv.xml
+func (gl *GL) ProgramUniformMatrix4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3dv.xml
+func (gl *GL) ProgramUniformMatrix3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2dv.xml
+func (gl *GL) ProgramUniformMatrix2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4fv.xml
+func (gl *GL) ProgramUniformMatrix4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3fv.xml
+func (gl *GL) ProgramUniformMatrix3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2fv.xml
+func (gl *GL) ProgramUniformMatrix2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniformMatrix2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4uiv.xml
+func (gl *GL) ProgramUniform4uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_3compat_glProgramUniform4uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4ui.xml
+func (gl *GL) ProgramUniform4ui(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_3compat_glProgramUniform4ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4dv.xml
+func (gl *GL) ProgramUniform4dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniform4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4d.xml
+func (gl *GL) ProgramUniform4d(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_3compat_glProgramUniform4d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4fv.xml
+func (gl *GL) ProgramUniform4fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniform4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4f.xml
+func (gl *GL) ProgramUniform4f(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_3compat_glProgramUniform4f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4iv.xml
+func (gl *GL) ProgramUniform4iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniform4iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4i.xml
+func (gl *GL) ProgramUniform4i(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_3compat_glProgramUniform4i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3uiv.xml
+func (gl *GL) ProgramUniform3uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_3compat_glProgramUniform3uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3ui.xml
+func (gl *GL) ProgramUniform3ui(program glbase.Program, location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_3compat_glProgramUniform3ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3dv.xml
+func (gl *GL) ProgramUniform3dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniform3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3d.xml
+func (gl *GL) ProgramUniform3d(program glbase.Program, location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_3compat_glProgramUniform3d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3fv.xml
+func (gl *GL) ProgramUniform3fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniform3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3f.xml
+func (gl *GL) ProgramUniform3f(program glbase.Program, location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_3compat_glProgramUniform3f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3iv.xml
+func (gl *GL) ProgramUniform3iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniform3iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3i.xml
+func (gl *GL) ProgramUniform3i(program glbase.Program, location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_3compat_glProgramUniform3i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2uiv.xml
+func (gl *GL) ProgramUniform2uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_3compat_glProgramUniform2uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2ui.xml
+func (gl *GL) ProgramUniform2ui(program glbase.Program, location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_3compat_glProgramUniform2ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2dv.xml
+func (gl *GL) ProgramUniform2dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniform2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2d.xml
+func (gl *GL) ProgramUniform2d(program glbase.Program, location glbase.Uniform, v0, v1 float64) {
+ C.gl4_3compat_glProgramUniform2d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2fv.xml
+func (gl *GL) ProgramUniform2fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniform2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2f.xml
+func (gl *GL) ProgramUniform2f(program glbase.Program, location glbase.Uniform, v0, v1 float32) {
+ C.gl4_3compat_glProgramUniform2f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2iv.xml
+func (gl *GL) ProgramUniform2iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3compat_glProgramUniform2iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2i.xml
+func (gl *GL) ProgramUniform2i(program glbase.Program, location glbase.Uniform, v0, v1 int32) {
+ C.gl4_3compat_glProgramUniform2i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1uiv.xml
+func (gl *GL) ProgramUniform1uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_3compat_glProgramUniform1uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1ui.xml
+func (gl *GL) ProgramUniform1ui(program glbase.Program, location glbase.Uniform, v0 uint32) {
+ C.gl4_3compat_glProgramUniform1ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1dv.xml
+func (gl *GL) ProgramUniform1dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ C.gl4_3compat_glProgramUniform1dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1d.xml
+func (gl *GL) ProgramUniform1d(program glbase.Program, location glbase.Uniform, v0 float64) {
+ C.gl4_3compat_glProgramUniform1d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1fv.xml
+func (gl *GL) ProgramUniform1fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ C.gl4_3compat_glProgramUniform1fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1f.xml
+func (gl *GL) ProgramUniform1f(program glbase.Program, location glbase.Uniform, v0 float32) {
+ C.gl4_3compat_glProgramUniform1f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1iv.xml
+func (gl *GL) ProgramUniform1iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ C.gl4_3compat_glProgramUniform1iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1i.xml
+func (gl *GL) ProgramUniform1i(program glbase.Program, location glbase.Uniform, v0 int32) {
+ C.gl4_3compat_glProgramUniform1i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineiv.xml
+func (gl *GL) GetProgramPipelineiv(pipeline uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetProgramPipelineiv(gl.funcs, C.GLuint(pipeline), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgramPipeline.xml
+func (gl *GL) IsProgramPipeline(pipeline uint32) bool {
+ glresult := C.gl4_3compat_glIsProgramPipeline(gl.funcs, C.GLuint(pipeline))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenProgramPipelines.xml
+func (gl *GL) GenProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_3compat_glGenProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteProgramPipelines.xml
+func (gl *GL) DeleteProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_3compat_glDeleteProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindProgramPipeline.xml
+func (gl *GL) BindProgramPipeline(pipeline uint32) {
+ C.gl4_3compat_glBindProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveShaderProgram.xml
+func (gl *GL) ActiveShaderProgram(pipeline uint32, program glbase.Program) {
+ C.gl4_3compat_glActiveShaderProgram(gl.funcs, C.GLuint(pipeline), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUseProgramStages.xml
+func (gl *GL) UseProgramStages(pipeline uint32, stages glbase.Bitfield, program glbase.Program) {
+ C.gl4_3compat_glUseProgramStages(gl.funcs, C.GLuint(pipeline), C.GLbitfield(stages), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramParameteri.xml
+func (gl *GL) ProgramParameteri(program glbase.Program, pname glbase.Enum, value int32) {
+ C.gl4_3compat_glProgramParameteri(gl.funcs, C.GLuint(program), C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramBinary.xml
+func (gl *GL) ProgramBinary(program glbase.Program, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glProgramBinary(gl.funcs, C.GLuint(program), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramBinary.xml
+func (gl *GL) GetProgramBinary(program glbase.Program, bufSize int32, length []int32, binaryFormat []glbase.Enum, binary interface{}) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glGetProgramBinary(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLenum)(unsafe.Pointer(&binaryFormat[0])), binary_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepthf.xml
+func (gl *GL) ClearDepthf(dd float32) {
+ C.gl4_3compat_glClearDepthf(gl.funcs, C.GLfloat(dd))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangef.xml
+func (gl *GL) DepthRangef(n, f float32) {
+ C.gl4_3compat_glDepthRangef(gl.funcs, C.GLfloat(n), C.GLfloat(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderPrecisionFormat.xml
+func (gl *GL) GetShaderPrecisionFormat(shadertype, precisionType glbase.Enum, range_, precision []int32) {
+ C.gl4_3compat_glGetShaderPrecisionFormat(gl.funcs, C.GLenum(shadertype), C.GLenum(precisionType), (*C.GLint)(unsafe.Pointer(&range_[0])), (*C.GLint)(unsafe.Pointer(&precision[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShaderBinary.xml
+func (gl *GL) ShaderBinary(count int, shaders []glbase.Shader, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glShaderBinary(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&shaders[0])), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReleaseShaderCompiler.xml
+func (gl *GL) ReleaseShaderCompiler() {
+ C.gl4_3compat_glReleaseShaderCompiler(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage3D.xml
+func (gl *GL) TexStorage3D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width, height int, depth int32) {
+ C.gl4_3compat_glTexStorage3D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage2D.xml
+func (gl *GL) TexStorage2D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_3compat_glTexStorage2D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage1D.xml
+func (gl *GL) TexStorage1D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width int) {
+ C.gl4_3compat_glTexStorage1D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMemoryBarrier.xml
+func (gl *GL) MemoryBarrier(barriers glbase.Bitfield) {
+ C.gl4_3compat_glMemoryBarrier(gl.funcs, C.GLbitfield(barriers))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindImageTexture.xml
+func (gl *GL) BindImageTexture(unit uint32, texture glbase.Texture, level int, layered bool, layer int32, access, format glbase.Enum) {
+ C.gl4_3compat_glBindImageTexture(gl.funcs, C.GLuint(unit), C.GLuint(texture), C.GLint(level), *(*C.GLboolean)(unsafe.Pointer(&layered)), C.GLint(layer), C.GLenum(access), C.GLenum(format))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAtomicCounterBufferiv.xml
+func (gl *GL) GetActiveAtomicCounterBufferiv(program glbase.Program, bufferIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetActiveAtomicCounterBufferiv(gl.funcs, C.GLuint(program), C.GLuint(bufferIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInternalformativ.xml
+func (gl *GL) GetInternalformativ(target, internalFormat, pname glbase.Enum, bufSize int32, params []int32) {
+ C.gl4_3compat_glGetInternalformativ(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStreamInstanced.xml
+func (gl *GL) DrawTransformFeedbackStreamInstanced(mode glbase.Enum, id, stream uint32, instancecount int32) {
+ C.gl4_3compat_glDrawTransformFeedbackStreamInstanced(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackInstanced.xml
+func (gl *GL) DrawTransformFeedbackInstanced(mode glbase.Enum, id uint32, instancecount int32) {
+ C.gl4_3compat_glDrawTransformFeedbackInstanced(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertexBaseInstance.xml
+func (gl *GL) DrawElementsInstancedBaseVertexBaseInstance(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32, baseinstance uint32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawElementsInstancedBaseVertexBaseInstance(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseInstance.xml
+func (gl *GL) DrawElementsInstancedBaseInstance(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32, baseinstance uint32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawElementsInstancedBaseInstance(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstancedBaseInstance.xml
+func (gl *GL) DrawArraysInstancedBaseInstance(mode glbase.Enum, first, count int, instancecount int32, baseinstance uint32) {
+ C.gl4_3compat_glDrawArraysInstancedBaseInstance(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage3DMultisample.xml
+func (gl *GL) TexStorage3DMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_3compat_glTexStorage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage2DMultisample.xml
+func (gl *GL) TexStorage2DMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int, fixedsamplelocations bool) {
+ C.gl4_3compat_glTexStorage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBufferRange.xml
+func (gl *GL) TexBufferRange(target, internalFormat glbase.Enum, buffer glbase.Buffer, offset, size int) {
+ C.gl4_3compat_glTexBufferRange(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShaderStorageBlockBinding.xml
+func (gl *GL) ShaderStorageBlockBinding(program glbase.Program, storageBlockIndex, storageBlockBinding uint32) {
+ C.gl4_3compat_glShaderStorageBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(storageBlockIndex), C.GLuint(storageBlockBinding))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceLocationIndex.xml
+func (gl *GL) GetProgramResourceLocationIndex(program glbase.Program, programInterface glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_3compat_glGetProgramResourceLocationIndex(gl.funcs, C.GLuint(program), C.GLenum(programInterface), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceLocation.xml
+func (gl *GL) GetProgramResourceLocation(program glbase.Program, programInterface glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_3compat_glGetProgramResourceLocation(gl.funcs, C.GLuint(program), C.GLenum(programInterface), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceiv.xml
+func (gl *GL) GetProgramResourceiv(program glbase.Program, programInterface glbase.Enum, index uint32, propCount int32, props []glbase.Enum, bufSize int32, length, params []int32) {
+ C.gl4_3compat_glGetProgramResourceiv(gl.funcs, C.GLuint(program), C.GLenum(programInterface), C.GLuint(index), C.GLsizei(propCount), (*C.GLenum)(unsafe.Pointer(&props[0])), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceName.xml
+func (gl *GL) GetProgramResourceName(program glbase.Program, programInterface glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_3compat_glGetProgramResourceName(gl.funcs, C.GLuint(program), C.GLenum(programInterface), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceIndex.xml
+func (gl *GL) GetProgramResourceIndex(program glbase.Program, programInterface glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_3compat_glGetProgramResourceIndex(gl.funcs, C.GLuint(program), C.GLenum(programInterface), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramInterfaceiv.xml
+func (gl *GL) GetProgramInterfaceiv(program glbase.Program, programInterface, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetProgramInterfaceiv(gl.funcs, C.GLuint(program), C.GLenum(programInterface), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawElementsIndirect.xml
+func (gl *GL) MultiDrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}, drawcount int32, stride int) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glMultiDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr, C.GLsizei(drawcount), C.GLsizei(stride))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArraysIndirect.xml
+func (gl *GL) MultiDrawArraysIndirect(mode glbase.Enum, indirect interface{}, drawcount int32, stride int) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glMultiDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr, C.GLsizei(drawcount), C.GLsizei(stride))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateSubFramebuffer.xml
+func (gl *GL) InvalidateSubFramebuffer(target glbase.Enum, numAttachments int32, attachments []glbase.Enum, x, y, width, height int) {
+ C.gl4_3compat_glInvalidateSubFramebuffer(gl.funcs, C.GLenum(target), C.GLsizei(numAttachments), (*C.GLenum)(unsafe.Pointer(&attachments[0])), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateFramebuffer.xml
+func (gl *GL) InvalidateFramebuffer(target glbase.Enum, numAttachments int32, attachments []glbase.Enum) {
+ C.gl4_3compat_glInvalidateFramebuffer(gl.funcs, C.GLenum(target), C.GLsizei(numAttachments), (*C.GLenum)(unsafe.Pointer(&attachments[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateBufferData.xml
+func (gl *GL) InvalidateBufferData(buffer glbase.Buffer) {
+ C.gl4_3compat_glInvalidateBufferData(gl.funcs, C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateBufferSubData.xml
+func (gl *GL) InvalidateBufferSubData(buffer glbase.Buffer, offset, length int) {
+ C.gl4_3compat_glInvalidateBufferSubData(gl.funcs, C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateTexImage.xml
+func (gl *GL) InvalidateTexImage(texture glbase.Texture, level int) {
+ C.gl4_3compat_glInvalidateTexImage(gl.funcs, C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateTexSubImage.xml
+func (gl *GL) InvalidateTexSubImage(texture glbase.Texture, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32) {
+ C.gl4_3compat_glInvalidateTexSubImage(gl.funcs, C.GLuint(texture), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInternalformati64v.xml
+func (gl *GL) GetInternalformati64v(target, internalFormat, pname glbase.Enum, bufSize int32, params []int64) {
+ C.gl4_3compat_glGetInternalformati64v(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferParameteriv.xml
+func (gl *GL) GetFramebufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetFramebufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferParameteri.xml
+func (gl *GL) FramebufferParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_3compat_glFramebufferParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexBindingDivisor.xml
+func (gl *GL) VertexBindingDivisor(bindingindex, divisor uint32) {
+ C.gl4_3compat_glVertexBindingDivisor(gl.funcs, C.GLuint(bindingindex), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribBinding.xml
+func (gl *GL) VertexAttribBinding(attribindex, bindingindex uint32) {
+ C.gl4_3compat_glVertexAttribBinding(gl.funcs, C.GLuint(attribindex), C.GLuint(bindingindex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribLFormat.xml
+func (gl *GL) VertexAttribLFormat(attribindex uint32, size int, gltype glbase.Enum, relativeoffset uint32) {
+ C.gl4_3compat_glVertexAttribLFormat(gl.funcs, C.GLuint(attribindex), C.GLint(size), C.GLenum(gltype), C.GLuint(relativeoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIFormat.xml
+func (gl *GL) VertexAttribIFormat(attribindex uint32, size int, gltype glbase.Enum, relativeoffset uint32) {
+ C.gl4_3compat_glVertexAttribIFormat(gl.funcs, C.GLuint(attribindex), C.GLint(size), C.GLenum(gltype), C.GLuint(relativeoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribFormat.xml
+func (gl *GL) VertexAttribFormat(attribindex uint32, size int, gltype glbase.Enum, normalized bool, relativeoffset uint32) {
+ C.gl4_3compat_glVertexAttribFormat(gl.funcs, C.GLuint(attribindex), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(relativeoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexBuffer.xml
+func (gl *GL) BindVertexBuffer(bindingindex uint32, buffer glbase.Buffer, offset, stride int) {
+ C.gl4_3compat_glBindVertexBuffer(gl.funcs, C.GLuint(bindingindex), C.GLuint(buffer), C.GLintptr(offset), C.GLsizei(stride))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTextureView.xml
+func (gl *GL) TextureView(texture glbase.Texture, target glbase.Enum, origtexture uint32, internalFormat glbase.Enum, minlevel, numlevels, minlayer, numlayers uint32) {
+ C.gl4_3compat_glTextureView(gl.funcs, C.GLuint(texture), C.GLenum(target), C.GLuint(origtexture), C.GLenum(internalFormat), C.GLuint(minlevel), C.GLuint(numlevels), C.GLuint(minlayer), C.GLuint(numlayers))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyImageSubData.xml
+func (gl *GL) CopyImageSubData(srcName uint32, srcTarget glbase.Enum, srcLevel, srcX, srcY, srcZ int32, dstName uint32, dstTarget glbase.Enum, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth int32) {
+ C.gl4_3compat_glCopyImageSubData(gl.funcs, C.GLuint(srcName), C.GLenum(srcTarget), C.GLint(srcLevel), C.GLint(srcX), C.GLint(srcY), C.GLint(srcZ), C.GLuint(dstName), C.GLenum(dstTarget), C.GLint(dstLevel), C.GLint(dstX), C.GLint(dstY), C.GLint(dstZ), C.GLsizei(srcWidth), C.GLsizei(srcHeight), C.GLsizei(srcDepth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDispatchComputeIndirect.xml
+func (gl *GL) DispatchComputeIndirect(indirect int) {
+ C.gl4_3compat_glDispatchComputeIndirect(gl.funcs, C.GLintptr(indirect))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDispatchCompute.xml
+func (gl *GL) DispatchCompute(num_groups_x, num_groups_y, num_groups_z uint32) {
+ C.gl4_3compat_glDispatchCompute(gl.funcs, C.GLuint(num_groups_x), C.GLuint(num_groups_y), C.GLuint(num_groups_z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferSubData.xml
+func (gl *GL) ClearBufferSubData(target, internalFormat glbase.Enum, offset, size int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glClearBufferSubData(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLintptr(offset), C.GLsizeiptr(size), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferData.xml
+func (gl *GL) ClearBufferData(target, internalFormat, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glClearBufferData(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTranslatef.xml
+func (gl *GL) Translatef(x, y, z float32) {
+ C.gl4_3compat_glTranslatef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTranslated.xml
+func (gl *GL) Translated(x, y, z float64) {
+ C.gl4_3compat_glTranslated(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScalef.xml
+func (gl *GL) Scalef(x, y, z float32) {
+ C.gl4_3compat_glScalef(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScaled.xml
+func (gl *GL) Scaled(x, y, z float64) {
+ C.gl4_3compat_glScaled(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRotatef.xml
+func (gl *GL) Rotatef(angle, x, y, z float32) {
+ C.gl4_3compat_glRotatef(gl.funcs, C.GLfloat(angle), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRotated.xml
+func (gl *GL) Rotated(angle, x, y, z float64) {
+ C.gl4_3compat_glRotated(gl.funcs, C.GLdouble(angle), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushMatrix.xml
+func (gl *GL) PushMatrix() {
+ C.gl4_3compat_glPushMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopMatrix.xml
+func (gl *GL) PopMatrix() {
+ C.gl4_3compat_glPopMatrix(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glOrtho.xml
+func (gl *GL) Ortho(left, right, bottom, top, zNear, zFar float64) {
+ C.gl4_3compat_glOrtho(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// MultMatrixd multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixd(m []float64) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl4_3compat_glMultMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// MultMatrixf multiplies the current matrix with the provided matrix.
+//
+// The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+//
+// The current matrix is determined by the current matrix mode (see
+// MatrixMode). It is either the projection matrix, modelview matrix, or the
+// texture matrix.
+//
+// For example, if the current matrix is C and the coordinates to be transformed
+// are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+//
+// c[0] c[4] c[8] c[12] v[0]
+// c[1] c[5] c[9] c[13] v[1]
+// c[2] c[6] c[10] c[14] X v[2]
+// c[3] c[7] c[11] c[15] v[3]
+//
+// Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+// replaces the current transformation with (C X M) x v, or
+//
+// c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+// c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+// c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+// c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+//
+// Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+//
+// While the elements of the matrix may be specified with single or double
+// precision, the GL may store or operate on these values in less-than-single
+// precision.
+//
+// In many computer languages, 4×4 arrays are represented in row-major
+// order. The transformations just described represent these matrices in
+// column-major order. The order of the multiplication is important. For
+// example, if the current transformation is a rotation, and MultMatrix is
+// called with a translation matrix, the translation is done directly on the
+// coordinates to be transformed, while the rotation is done on the results
+// of that translation.
+//
+// GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) MultMatrixf(m []float32) {
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ C.gl4_3compat_glMultMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMatrixMode.xml
+func (gl *GL) MatrixMode(mode glbase.Enum) {
+ C.gl4_3compat_glMatrixMode(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadMatrixd.xml
+func (gl *GL) LoadMatrixd(m []float64) {
+ C.gl4_3compat_glLoadMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadMatrixf.xml
+func (gl *GL) LoadMatrixf(m []float32) {
+ C.gl4_3compat_glLoadMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadIdentity.xml
+func (gl *GL) LoadIdentity() {
+ C.gl4_3compat_glLoadIdentity(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrustum.xml
+func (gl *GL) Frustum(left, right, bottom, top, zNear, zFar float64) {
+ C.gl4_3compat_glFrustum(gl.funcs, C.GLdouble(left), C.GLdouble(right), C.GLdouble(bottom), C.GLdouble(top), C.GLdouble(zNear), C.GLdouble(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsList.xml
+func (gl *GL) IsList(list uint32) bool {
+ glresult := C.gl4_3compat_glIsList(gl.funcs, C.GLuint(list))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGeniv.xml
+func (gl *GL) GetTexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGenfv.xml
+func (gl *GL) GetTexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexGendv.xml
+func (gl *GL) GetTexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl4_3compat_glGetTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexEnviv.xml
+func (gl *GL) GetTexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexEnvfv.xml
+func (gl *GL) GetTexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPolygonStipple.xml
+func (gl *GL) GetPolygonStipple(mask []uint8) {
+ C.gl4_3compat_glGetPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapusv.xml
+func (gl *GL) GetPixelMapusv(glmap glbase.Enum, values []uint16) {
+ C.gl4_3compat_glGetPixelMapusv(gl.funcs, C.GLenum(glmap), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapuiv.xml
+func (gl *GL) GetPixelMapuiv(glmap glbase.Enum, values []uint32) {
+ C.gl4_3compat_glGetPixelMapuiv(gl.funcs, C.GLenum(glmap), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetPixelMapfv.xml
+func (gl *GL) GetPixelMapfv(glmap glbase.Enum, values []float32) {
+ C.gl4_3compat_glGetPixelMapfv(gl.funcs, C.GLenum(glmap), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMaterialiv.xml
+func (gl *GL) GetMaterialiv(face, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMaterialfv.xml
+func (gl *GL) GetMaterialfv(face, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapiv.xml
+func (gl *GL) GetMapiv(target, query glbase.Enum, v []int32) {
+ C.gl4_3compat_glGetMapiv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapfv.xml
+func (gl *GL) GetMapfv(target, query glbase.Enum, v []float32) {
+ C.gl4_3compat_glGetMapfv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMapdv.xml
+func (gl *GL) GetMapdv(target, query glbase.Enum, v []float64) {
+ C.gl4_3compat_glGetMapdv(gl.funcs, C.GLenum(target), C.GLenum(query), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetLightiv.xml
+func (gl *GL) GetLightiv(light, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetLightfv.xml
+func (gl *GL) GetLightfv(light, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetClipPlane.xml
+func (gl *GL) GetClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl4_3compat_glGetClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawPixels.xml
+func (gl *GL) DrawPixels(width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glDrawPixels(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyPixels.xml
+func (gl *GL) CopyPixels(x, y, width, height int, gltype glbase.Enum) {
+ C.gl4_3compat_glCopyPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(gltype))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapusv.xml
+func (gl *GL) PixelMapusv(glmap glbase.Enum, mapsize int32, values []uint16) {
+ C.gl4_3compat_glPixelMapusv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLushort)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapuiv.xml
+func (gl *GL) PixelMapuiv(glmap glbase.Enum, mapsize int32, values []uint32) {
+ C.gl4_3compat_glPixelMapuiv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLuint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelMapfv.xml
+func (gl *GL) PixelMapfv(glmap glbase.Enum, mapsize int32, values []float32) {
+ C.gl4_3compat_glPixelMapfv(gl.funcs, C.GLenum(glmap), C.GLint(mapsize), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelTransferi.xml
+func (gl *GL) PixelTransferi(pname glbase.Enum, param int32) {
+ C.gl4_3compat_glPixelTransferi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelTransferf.xml
+func (gl *GL) PixelTransferf(pname glbase.Enum, param float32) {
+ C.gl4_3compat_glPixelTransferf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelZoom.xml
+func (gl *GL) PixelZoom(xfactor, yfactor float32) {
+ C.gl4_3compat_glPixelZoom(gl.funcs, C.GLfloat(xfactor), C.GLfloat(yfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glAlphaFunc.xml
+func (gl *GL) AlphaFunc(glfunc glbase.Enum, ref float32) {
+ C.gl4_3compat_glAlphaFunc(gl.funcs, C.GLenum(glfunc), C.GLfloat(ref))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalPoint2.xml
+func (gl *GL) EvalPoint2(i, j int32) {
+ C.gl4_3compat_glEvalPoint2(gl.funcs, C.GLint(i), C.GLint(j))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalMesh2.xml
+func (gl *GL) EvalMesh2(mode glbase.Enum, i1, i2, j1, j2 int32) {
+ C.gl4_3compat_glEvalMesh2(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2), C.GLint(j1), C.GLint(j2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalPoint1.xml
+func (gl *GL) EvalPoint1(i int32) {
+ C.gl4_3compat_glEvalPoint1(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalMesh1.xml
+func (gl *GL) EvalMesh1(mode glbase.Enum, i1, i2 int32) {
+ C.gl4_3compat_glEvalMesh1(gl.funcs, C.GLenum(mode), C.GLint(i1), C.GLint(i2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2fv.xml
+func (gl *GL) EvalCoord2fv(u []float32) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl4_3compat_glEvalCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2f.xml
+func (gl *GL) EvalCoord2f(u, v float32) {
+ C.gl4_3compat_glEvalCoord2f(gl.funcs, C.GLfloat(u), C.GLfloat(v))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2dv.xml
+func (gl *GL) EvalCoord2dv(u []float64) {
+ if len(u) != 2 {
+ panic("parameter u has incorrect length")
+ }
+ C.gl4_3compat_glEvalCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord2d.xml
+func (gl *GL) EvalCoord2d(u, v float64) {
+ C.gl4_3compat_glEvalCoord2d(gl.funcs, C.GLdouble(u), C.GLdouble(v))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1fv.xml
+func (gl *GL) EvalCoord1fv(u []float32) {
+ C.gl4_3compat_glEvalCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1f.xml
+func (gl *GL) EvalCoord1f(u float32) {
+ C.gl4_3compat_glEvalCoord1f(gl.funcs, C.GLfloat(u))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1dv.xml
+func (gl *GL) EvalCoord1dv(u []float64) {
+ C.gl4_3compat_glEvalCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&u[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEvalCoord1d.xml
+func (gl *GL) EvalCoord1d(u float64) {
+ C.gl4_3compat_glEvalCoord1d(gl.funcs, C.GLdouble(u))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid2f.xml
+func (gl *GL) MapGrid2f(un int32, u1, u2 float32, vn int32, v1, v2 float32) {
+ C.gl4_3compat_glMapGrid2f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2), C.GLint(vn), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid2d.xml
+func (gl *GL) MapGrid2d(un int32, u1, u2 float64, vn int32, v1, v2 float64) {
+ C.gl4_3compat_glMapGrid2d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2), C.GLint(vn), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid1f.xml
+func (gl *GL) MapGrid1f(un int32, u1, u2 float32) {
+ C.gl4_3compat_glMapGrid1f(gl.funcs, C.GLint(un), C.GLfloat(u1), C.GLfloat(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMapGrid1d.xml
+func (gl *GL) MapGrid1d(un int32, u1, u2 float64) {
+ C.gl4_3compat_glMapGrid1d(gl.funcs, C.GLint(un), C.GLdouble(u1), C.GLdouble(u2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap2f.xml
+func (gl *GL) Map2f(target glbase.Enum, u1, u2 float32, ustride, uorder int32, v1, v2 float32, vstride, vorder int32, points []float32) {
+ C.gl4_3compat_glMap2f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(ustride), C.GLint(uorder), C.GLfloat(v1), C.GLfloat(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap2d.xml
+func (gl *GL) Map2d(target glbase.Enum, u1, u2 float64, ustride, uorder int32, v1, v2 float64, vstride, vorder int32, points []float64) {
+ C.gl4_3compat_glMap2d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(ustride), C.GLint(uorder), C.GLdouble(v1), C.GLdouble(v2), C.GLint(vstride), C.GLint(vorder), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap1f.xml
+func (gl *GL) Map1f(target glbase.Enum, u1, u2 float32, stride, order int, points []float32) {
+ C.gl4_3compat_glMap1f(gl.funcs, C.GLenum(target), C.GLfloat(u1), C.GLfloat(u2), C.GLint(stride), C.GLint(order), (*C.GLfloat)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMap1d.xml
+func (gl *GL) Map1d(target glbase.Enum, u1, u2 float64, stride, order int, points []float64) {
+ C.gl4_3compat_glMap1d(gl.funcs, C.GLenum(target), C.GLdouble(u1), C.GLdouble(u2), C.GLint(stride), C.GLint(order), (*C.GLdouble)(unsafe.Pointer(&points[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushAttrib.xml
+func (gl *GL) PushAttrib(mask glbase.Bitfield) {
+ C.gl4_3compat_glPushAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopAttrib.xml
+func (gl *GL) PopAttrib() {
+ C.gl4_3compat_glPopAttrib(gl.funcs)
+}
+
+// Accum executes an operation on the accumulation buffer.
+//
+// Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+// GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+// used.
+//
+// The accumulation buffer is an extended-range color buffer. Images are not
+// rendered into it. Rather, images rendered into one of the color buffers
+// are added to the contents of the accumulation buffer after rendering.
+// Effects such as antialiasing (of points, lines, and polygons), motion
+// blur, and depth of field can be created by accumulating images generated
+// with different transformation matrices.
+//
+// Each pixel in the accumulation buffer consists of red, green, blue, and
+// alpha values. The number of bits per component in the accumulation buffer
+// depends on the implementation. You can examine this number by calling
+// GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+// GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+// Regardless of the number of bits per component, the range of values stored
+// by each component is (-1, 1). The accumulation buffer pixels are mapped
+// one-to-one with frame buffer pixels.
+//
+// All accumulation buffer operations are limited to the area of the current
+// scissor box and applied identically to the red, green, blue, and alpha
+// components of each pixel. If a Accum operation results in a value outside
+// the range (-1, 1), the contents of an accumulation buffer pixel component
+// are undefined.
+//
+// The operations are as follows:
+//
+// GL.ACCUM
+// Obtains R, G, B, and A values from the buffer currently selected for
+// reading (see ReadBuffer). Each component value is divided by 2 n -
+// 1 , where n is the number of bits allocated to each color component
+// in the currently selected buffer. The result is a floating-point
+// value in the range 0 1 , which is multiplied by value and added to
+// the corresponding pixel component in the accumulation buffer,
+// thereby updating the accumulation buffer.
+//
+// GL.LOAD
+// Similar to GL.ACCUM, except that the current value in the
+// accumulation buffer is not used in the calculation of the new value.
+// That is, the R, G, B, and A values from the currently selected
+// buffer are divided by 2 n - 1 , multiplied by value, and then stored
+// in the corresponding accumulation buffer cell, overwriting the
+// current value.
+//
+// GL.ADD
+// Adds value to each R, G, B, and A in the accumulation buffer.
+//
+// GL.MULT
+// Multiplies each R, G, B, and A in the accumulation buffer by value
+// and returns the scaled component to its corresponding accumulation
+// buffer location.
+//
+// GL.RETURN
+// Transfers accumulation buffer values to the color buffer or buffers
+// currently selected for writing. Each R, G, B, and A component is
+// multiplied by value, then multiplied by 2 n - 1 , clamped to the
+// range 0 2 n - 1 , and stored in the corresponding display buffer
+// cell. The only fragment operations that are applied to this transfer
+// are pixel ownership, scissor, dithering, and color writemasks.
+//
+// To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+// values to set it to, then call Clear with the accumulation buffer
+// enabled.
+//
+// Error GL.INVALID_ENUM is generated if op is not an accepted value.
+// GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+// GL.INVALID_OPERATION is generated if Accum is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) Accum(op glbase.Enum, value float32) {
+ C.gl4_3compat_glAccum(gl.funcs, C.GLenum(op), C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexMask.xml
+func (gl *GL) IndexMask(mask uint32) {
+ C.gl4_3compat_glIndexMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearIndex.xml
+func (gl *GL) ClearIndex(c float32) {
+ C.gl4_3compat_glClearIndex(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearAccum.xml
+func (gl *GL) ClearAccum(red, green, blue, alpha float32) {
+ C.gl4_3compat_glClearAccum(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushName.xml
+func (gl *GL) PushName(name uint32) {
+ C.gl4_3compat_glPushName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopName.xml
+func (gl *GL) PopName() {
+ C.gl4_3compat_glPopName(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPassThrough.xml
+func (gl *GL) PassThrough(token float32) {
+ C.gl4_3compat_glPassThrough(gl.funcs, C.GLfloat(token))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadName.xml
+func (gl *GL) LoadName(name uint32) {
+ C.gl4_3compat_glLoadName(gl.funcs, C.GLuint(name))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInitNames.xml
+func (gl *GL) InitNames() {
+ C.gl4_3compat_glInitNames(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderMode.xml
+func (gl *GL) RenderMode(mode glbase.Enum) int32 {
+ glresult := C.gl4_3compat_glRenderMode(gl.funcs, C.GLenum(mode))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSelectBuffer.xml
+func (gl *GL) SelectBuffer(size int, buffer []glbase.Buffer) {
+ C.gl4_3compat_glSelectBuffer(gl.funcs, C.GLsizei(size), (*C.GLuint)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFeedbackBuffer.xml
+func (gl *GL) FeedbackBuffer(size int, gltype glbase.Enum, buffer []float32) {
+ C.gl4_3compat_glFeedbackBuffer(gl.funcs, C.GLsizei(size), C.GLenum(gltype), (*C.GLfloat)(unsafe.Pointer(&buffer[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGeniv.xml
+func (gl *GL) TexGeniv(coord, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glTexGeniv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGeni.xml
+func (gl *GL) TexGeni(coord, pname glbase.Enum, param int32) {
+ C.gl4_3compat_glTexGeni(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGenfv.xml
+func (gl *GL) TexGenfv(coord, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glTexGenfv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGenf.xml
+func (gl *GL) TexGenf(coord, pname glbase.Enum, param float32) {
+ C.gl4_3compat_glTexGenf(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGendv.xml
+func (gl *GL) TexGendv(coord, pname glbase.Enum, params []float64) {
+ C.gl4_3compat_glTexGendv(gl.funcs, C.GLenum(coord), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexGend.xml
+func (gl *GL) TexGend(coord, pname glbase.Enum, param float64) {
+ C.gl4_3compat_glTexGend(gl.funcs, C.GLenum(coord), C.GLenum(pname), C.GLdouble(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnviv.xml
+func (gl *GL) TexEnviv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glTexEnviv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvi.xml
+func (gl *GL) TexEnvi(target, pname glbase.Enum, param int32) {
+ C.gl4_3compat_glTexEnvi(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvfv.xml
+func (gl *GL) TexEnvfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glTexEnvfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexEnvf.xml
+func (gl *GL) TexEnvf(target, pname glbase.Enum, param float32) {
+ C.gl4_3compat_glTexEnvf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShadeModel.xml
+func (gl *GL) ShadeModel(mode glbase.Enum) {
+ C.gl4_3compat_glShadeModel(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonStipple.xml
+func (gl *GL) PolygonStipple(mask []uint8) {
+ C.gl4_3compat_glPolygonStipple(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&mask[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialiv.xml
+func (gl *GL) Materialiv(face, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glMaterialiv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMateriali.xml
+func (gl *GL) Materiali(face, pname glbase.Enum, param int32) {
+ C.gl4_3compat_glMateriali(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialfv.xml
+func (gl *GL) Materialfv(face, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glMaterialfv(gl.funcs, C.GLenum(face), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMaterialf.xml
+func (gl *GL) Materialf(face, pname glbase.Enum, param float32) {
+ C.gl4_3compat_glMaterialf(gl.funcs, C.GLenum(face), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineStipple.xml
+func (gl *GL) LineStipple(factor int32, pattern uint16) {
+ C.gl4_3compat_glLineStipple(gl.funcs, C.GLint(factor), C.GLushort(pattern))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModeliv.xml
+func (gl *GL) LightModeliv(pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glLightModeliv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModeli.xml
+func (gl *GL) LightModeli(pname glbase.Enum, param int32) {
+ C.gl4_3compat_glLightModeli(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModelfv.xml
+func (gl *GL) LightModelfv(pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glLightModelfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightModelf.xml
+func (gl *GL) LightModelf(pname glbase.Enum, param float32) {
+ C.gl4_3compat_glLightModelf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightiv.xml
+func (gl *GL) Lightiv(light, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glLightiv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLighti.xml
+func (gl *GL) Lighti(light, pname glbase.Enum, param int32) {
+ C.gl4_3compat_glLighti(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightfv.xml
+func (gl *GL) Lightfv(light, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glLightfv(gl.funcs, C.GLenum(light), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLightf.xml
+func (gl *GL) Lightf(light, pname glbase.Enum, param float32) {
+ C.gl4_3compat_glLightf(gl.funcs, C.GLenum(light), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogiv.xml
+func (gl *GL) Fogiv(pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glFogiv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogi.xml
+func (gl *GL) Fogi(pname glbase.Enum, param int32) {
+ C.gl4_3compat_glFogi(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogfv.xml
+func (gl *GL) Fogfv(pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glFogfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogf.xml
+func (gl *GL) Fogf(pname glbase.Enum, param float32) {
+ C.gl4_3compat_glFogf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaterial.xml
+func (gl *GL) ColorMaterial(face, mode glbase.Enum) {
+ C.gl4_3compat_glColorMaterial(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClipPlane.xml
+func (gl *GL) ClipPlane(plane glbase.Enum, equation []float64) {
+ C.gl4_3compat_glClipPlane(gl.funcs, C.GLenum(plane), (*C.GLdouble)(unsafe.Pointer(&equation[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4sv.xml
+func (gl *GL) Vertex4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4s.xml
+func (gl *GL) Vertex4s(x, y, z, w int16) {
+ C.gl4_3compat_glVertex4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4iv.xml
+func (gl *GL) Vertex4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4i.xml
+func (gl *GL) Vertex4i(x, y, z, w int) {
+ C.gl4_3compat_glVertex4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4fv.xml
+func (gl *GL) Vertex4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4f.xml
+func (gl *GL) Vertex4f(x, y, z, w float32) {
+ C.gl4_3compat_glVertex4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4dv.xml
+func (gl *GL) Vertex4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex4d.xml
+func (gl *GL) Vertex4d(x, y, z, w float64) {
+ C.gl4_3compat_glVertex4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3sv.xml
+func (gl *GL) Vertex3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3s.xml
+func (gl *GL) Vertex3s(x, y, z int16) {
+ C.gl4_3compat_glVertex3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3iv.xml
+func (gl *GL) Vertex3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3i.xml
+func (gl *GL) Vertex3i(x, y, z int) {
+ C.gl4_3compat_glVertex3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3fv.xml
+func (gl *GL) Vertex3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3f.xml
+func (gl *GL) Vertex3f(x, y, z float32) {
+ C.gl4_3compat_glVertex3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3dv.xml
+func (gl *GL) Vertex3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex3d.xml
+func (gl *GL) Vertex3d(x, y, z float64) {
+ C.gl4_3compat_glVertex3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2sv.xml
+func (gl *GL) Vertex2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2s.xml
+func (gl *GL) Vertex2s(x, y int16) {
+ C.gl4_3compat_glVertex2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2iv.xml
+func (gl *GL) Vertex2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2i.xml
+func (gl *GL) Vertex2i(x, y int) {
+ C.gl4_3compat_glVertex2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2fv.xml
+func (gl *GL) Vertex2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2f.xml
+func (gl *GL) Vertex2f(x, y float32) {
+ C.gl4_3compat_glVertex2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2dv.xml
+func (gl *GL) Vertex2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertex2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertex2d.xml
+func (gl *GL) Vertex2d(x, y float64) {
+ C.gl4_3compat_glVertex2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4sv.xml
+func (gl *GL) TexCoord4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4s.xml
+func (gl *GL) TexCoord4s(s, t, r, q int16) {
+ C.gl4_3compat_glTexCoord4s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4iv.xml
+func (gl *GL) TexCoord4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4i.xml
+func (gl *GL) TexCoord4i(s, t, r, q int32) {
+ C.gl4_3compat_glTexCoord4i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4fv.xml
+func (gl *GL) TexCoord4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4f.xml
+func (gl *GL) TexCoord4f(s, t, r, q float32) {
+ C.gl4_3compat_glTexCoord4f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4dv.xml
+func (gl *GL) TexCoord4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord4d.xml
+func (gl *GL) TexCoord4d(s, t, r, q float64) {
+ C.gl4_3compat_glTexCoord4d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3sv.xml
+func (gl *GL) TexCoord3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3s.xml
+func (gl *GL) TexCoord3s(s, t, r int16) {
+ C.gl4_3compat_glTexCoord3s(gl.funcs, C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3iv.xml
+func (gl *GL) TexCoord3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3i.xml
+func (gl *GL) TexCoord3i(s, t, r int32) {
+ C.gl4_3compat_glTexCoord3i(gl.funcs, C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3fv.xml
+func (gl *GL) TexCoord3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3f.xml
+func (gl *GL) TexCoord3f(s, t, r float32) {
+ C.gl4_3compat_glTexCoord3f(gl.funcs, C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3dv.xml
+func (gl *GL) TexCoord3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord3d.xml
+func (gl *GL) TexCoord3d(s, t, r float64) {
+ C.gl4_3compat_glTexCoord3d(gl.funcs, C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2sv.xml
+func (gl *GL) TexCoord2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2s.xml
+func (gl *GL) TexCoord2s(s, t int16) {
+ C.gl4_3compat_glTexCoord2s(gl.funcs, C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2iv.xml
+func (gl *GL) TexCoord2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2i.xml
+func (gl *GL) TexCoord2i(s, t int32) {
+ C.gl4_3compat_glTexCoord2i(gl.funcs, C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2fv.xml
+func (gl *GL) TexCoord2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2f.xml
+func (gl *GL) TexCoord2f(s, t float32) {
+ C.gl4_3compat_glTexCoord2f(gl.funcs, C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2dv.xml
+func (gl *GL) TexCoord2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glTexCoord2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord2d.xml
+func (gl *GL) TexCoord2d(s, t float64) {
+ C.gl4_3compat_glTexCoord2d(gl.funcs, C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1sv.xml
+func (gl *GL) TexCoord1sv(v []int16) {
+ C.gl4_3compat_glTexCoord1sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1s.xml
+func (gl *GL) TexCoord1s(s int16) {
+ C.gl4_3compat_glTexCoord1s(gl.funcs, C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1iv.xml
+func (gl *GL) TexCoord1iv(v []int32) {
+ C.gl4_3compat_glTexCoord1iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1i.xml
+func (gl *GL) TexCoord1i(s int32) {
+ C.gl4_3compat_glTexCoord1i(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1fv.xml
+func (gl *GL) TexCoord1fv(v []float32) {
+ C.gl4_3compat_glTexCoord1fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1f.xml
+func (gl *GL) TexCoord1f(s float32) {
+ C.gl4_3compat_glTexCoord1f(gl.funcs, C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1dv.xml
+func (gl *GL) TexCoord1dv(v []float64) {
+ C.gl4_3compat_glTexCoord1dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoord1d.xml
+func (gl *GL) TexCoord1d(s float64) {
+ C.gl4_3compat_glTexCoord1d(gl.funcs, C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectsv.xml
+func (gl *GL) Rectsv(v1, v2 []int16) {
+ C.gl4_3compat_glRectsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v1[0])), (*C.GLshort)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRects.xml
+func (gl *GL) Rects(x1, y1, x2, y2 int16) {
+ C.gl4_3compat_glRects(gl.funcs, C.GLshort(x1), C.GLshort(y1), C.GLshort(x2), C.GLshort(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectiv.xml
+func (gl *GL) Rectiv(v1, v2 []int32) {
+ C.gl4_3compat_glRectiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v1[0])), (*C.GLint)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRecti.xml
+func (gl *GL) Recti(x1, y1, x2, y2 int32) {
+ C.gl4_3compat_glRecti(gl.funcs, C.GLint(x1), C.GLint(y1), C.GLint(x2), C.GLint(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectfv.xml
+func (gl *GL) Rectfv(v1, v2 []float32) {
+ C.gl4_3compat_glRectfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v1[0])), (*C.GLfloat)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectf.xml
+func (gl *GL) Rectf(x1, y1, x2, y2 float32) {
+ C.gl4_3compat_glRectf(gl.funcs, C.GLfloat(x1), C.GLfloat(y1), C.GLfloat(x2), C.GLfloat(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectdv.xml
+func (gl *GL) Rectdv(v1, v2 []float64) {
+ C.gl4_3compat_glRectdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v1[0])), (*C.GLdouble)(unsafe.Pointer(&v2[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRectd.xml
+func (gl *GL) Rectd(x1, y1, x2, y2 float64) {
+ C.gl4_3compat_glRectd(gl.funcs, C.GLdouble(x1), C.GLdouble(y1), C.GLdouble(x2), C.GLdouble(y2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4sv.xml
+func (gl *GL) RasterPos4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4s.xml
+func (gl *GL) RasterPos4s(x, y, z, w int16) {
+ C.gl4_3compat_glRasterPos4s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4iv.xml
+func (gl *GL) RasterPos4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4i.xml
+func (gl *GL) RasterPos4i(x, y, z, w int) {
+ C.gl4_3compat_glRasterPos4i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4fv.xml
+func (gl *GL) RasterPos4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4f.xml
+func (gl *GL) RasterPos4f(x, y, z, w float32) {
+ C.gl4_3compat_glRasterPos4f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4dv.xml
+func (gl *GL) RasterPos4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos4d.xml
+func (gl *GL) RasterPos4d(x, y, z, w float64) {
+ C.gl4_3compat_glRasterPos4d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3sv.xml
+func (gl *GL) RasterPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3s.xml
+func (gl *GL) RasterPos3s(x, y, z int16) {
+ C.gl4_3compat_glRasterPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3iv.xml
+func (gl *GL) RasterPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3i.xml
+func (gl *GL) RasterPos3i(x, y, z int) {
+ C.gl4_3compat_glRasterPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3fv.xml
+func (gl *GL) RasterPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3f.xml
+func (gl *GL) RasterPos3f(x, y, z float32) {
+ C.gl4_3compat_glRasterPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3dv.xml
+func (gl *GL) RasterPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos3d.xml
+func (gl *GL) RasterPos3d(x, y, z float64) {
+ C.gl4_3compat_glRasterPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2sv.xml
+func (gl *GL) RasterPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2s.xml
+func (gl *GL) RasterPos2s(x, y int16) {
+ C.gl4_3compat_glRasterPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2iv.xml
+func (gl *GL) RasterPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2i.xml
+func (gl *GL) RasterPos2i(x, y int) {
+ C.gl4_3compat_glRasterPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2fv.xml
+func (gl *GL) RasterPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2f.xml
+func (gl *GL) RasterPos2f(x, y float32) {
+ C.gl4_3compat_glRasterPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2dv.xml
+func (gl *GL) RasterPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glRasterPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRasterPos2d.xml
+func (gl *GL) RasterPos2d(x, y float64) {
+ C.gl4_3compat_glRasterPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3sv.xml
+func (gl *GL) Normal3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glNormal3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3s.xml
+func (gl *GL) Normal3s(nx, ny, nz int16) {
+ C.gl4_3compat_glNormal3s(gl.funcs, C.GLshort(nx), C.GLshort(ny), C.GLshort(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3iv.xml
+func (gl *GL) Normal3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glNormal3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3i.xml
+func (gl *GL) Normal3i(nx, ny, nz int32) {
+ C.gl4_3compat_glNormal3i(gl.funcs, C.GLint(nx), C.GLint(ny), C.GLint(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3fv.xml
+func (gl *GL) Normal3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glNormal3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3f.xml
+func (gl *GL) Normal3f(nx, ny, nz float32) {
+ C.gl4_3compat_glNormal3f(gl.funcs, C.GLfloat(nx), C.GLfloat(ny), C.GLfloat(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3dv.xml
+func (gl *GL) Normal3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glNormal3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3d.xml
+func (gl *GL) Normal3d(nx, ny, nz float64) {
+ C.gl4_3compat_glNormal3d(gl.funcs, C.GLdouble(nx), C.GLdouble(ny), C.GLdouble(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3bv.xml
+func (gl *GL) Normal3bv(v []byte) {
+ C.gl4_3compat_glNormal3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormal3b.xml
+func (gl *GL) Normal3b(nx, ny, nz byte) {
+ C.gl4_3compat_glNormal3b(gl.funcs, C.GLbyte(nx), C.GLbyte(ny), C.GLbyte(nz))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexsv.xml
+func (gl *GL) Indexsv(c []int16) {
+ C.gl4_3compat_glIndexsv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexs.xml
+func (gl *GL) Indexs(c int16) {
+ C.gl4_3compat_glIndexs(gl.funcs, C.GLshort(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexiv.xml
+func (gl *GL) Indexiv(c []int32) {
+ C.gl4_3compat_glIndexiv(gl.funcs, (*C.GLint)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexi.xml
+func (gl *GL) Indexi(c int32) {
+ C.gl4_3compat_glIndexi(gl.funcs, C.GLint(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexfv.xml
+func (gl *GL) Indexfv(c []float32) {
+ C.gl4_3compat_glIndexfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexf.xml
+func (gl *GL) Indexf(c float32) {
+ C.gl4_3compat_glIndexf(gl.funcs, C.GLfloat(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexdv.xml
+func (gl *GL) Indexdv(c []float64) {
+ C.gl4_3compat_glIndexdv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexd.xml
+func (gl *GL) Indexd(c float64) {
+ C.gl4_3compat_glIndexd(gl.funcs, C.GLdouble(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnd.xml
+func (gl *GL) End() {
+ C.gl4_3compat_glEnd(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlagv.xml
+func (gl *GL) EdgeFlagv(flag []bool) {
+ C.gl4_3compat_glEdgeFlagv(gl.funcs, (*C.GLboolean)(unsafe.Pointer(&flag[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlag.xml
+func (gl *GL) EdgeFlag(flag bool) {
+ C.gl4_3compat_glEdgeFlag(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4usv.xml
+func (gl *GL) Color4usv(v []uint16) {
+ C.gl4_3compat_glColor4usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4us.xml
+func (gl *GL) Color4us(red, green, blue, alpha uint16) {
+ C.gl4_3compat_glColor4us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue), C.GLushort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4uiv.xml
+func (gl *GL) Color4uiv(v []uint32) {
+ C.gl4_3compat_glColor4uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ui.xml
+func (gl *GL) Color4ui(red, green, blue, alpha uint32) {
+ C.gl4_3compat_glColor4ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue), C.GLuint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ubv.xml
+func (gl *GL) Color4ubv(v []uint8) {
+ C.gl4_3compat_glColor4ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4ub.xml
+func (gl *GL) Color4ub(red, green, blue, alpha uint8) {
+ C.gl4_3compat_glColor4ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue), C.GLubyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4sv.xml
+func (gl *GL) Color4sv(v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glColor4sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4s.xml
+func (gl *GL) Color4s(red, green, blue, alpha int16) {
+ C.gl4_3compat_glColor4s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue), C.GLshort(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4iv.xml
+func (gl *GL) Color4iv(v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glColor4iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4i.xml
+func (gl *GL) Color4i(red, green, blue, alpha int32) {
+ C.gl4_3compat_glColor4i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue), C.GLint(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4fv.xml
+func (gl *GL) Color4fv(v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glColor4fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4f.xml
+func (gl *GL) Color4f(red, green, blue, alpha float32) {
+ C.gl4_3compat_glColor4f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4dv.xml
+func (gl *GL) Color4dv(v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glColor4dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4d.xml
+func (gl *GL) Color4d(red, green, blue, alpha float64) {
+ C.gl4_3compat_glColor4d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue), C.GLdouble(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4bv.xml
+func (gl *GL) Color4bv(v []byte) {
+ C.gl4_3compat_glColor4bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor4b.xml
+func (gl *GL) Color4b(red, green, blue, alpha byte) {
+ C.gl4_3compat_glColor4b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue), C.GLbyte(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3usv.xml
+func (gl *GL) Color3usv(v []uint16) {
+ C.gl4_3compat_glColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3us.xml
+func (gl *GL) Color3us(red, green, blue uint16) {
+ C.gl4_3compat_glColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3uiv.xml
+func (gl *GL) Color3uiv(v []uint32) {
+ C.gl4_3compat_glColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ui.xml
+func (gl *GL) Color3ui(red, green, blue uint32) {
+ C.gl4_3compat_glColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ubv.xml
+func (gl *GL) Color3ubv(v []uint8) {
+ C.gl4_3compat_glColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3ub.xml
+func (gl *GL) Color3ub(red, green, blue uint8) {
+ C.gl4_3compat_glColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3sv.xml
+func (gl *GL) Color3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3s.xml
+func (gl *GL) Color3s(red, green, blue int16) {
+ C.gl4_3compat_glColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3iv.xml
+func (gl *GL) Color3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3i.xml
+func (gl *GL) Color3i(red, green, blue int32) {
+ C.gl4_3compat_glColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3fv.xml
+func (gl *GL) Color3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3f.xml
+func (gl *GL) Color3f(red, green, blue float32) {
+ C.gl4_3compat_glColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3dv.xml
+func (gl *GL) Color3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3d.xml
+func (gl *GL) Color3d(red, green, blue float64) {
+ C.gl4_3compat_glColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3bv.xml
+func (gl *GL) Color3bv(v []byte) {
+ C.gl4_3compat_glColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColor3b.xml
+func (gl *GL) Color3b(red, green, blue byte) {
+ C.gl4_3compat_glColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBitmap.xml
+func (gl *GL) Bitmap(width, height int, xorig, yorig, xmove, ymove float32, bitmap []uint8) {
+ C.gl4_3compat_glBitmap(gl.funcs, C.GLsizei(width), C.GLsizei(height), C.GLfloat(xorig), C.GLfloat(yorig), C.GLfloat(xmove), C.GLfloat(ymove), (*C.GLubyte)(unsafe.Pointer(&bitmap[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBegin.xml
+func (gl *GL) Begin(mode glbase.Enum) {
+ C.gl4_3compat_glBegin(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glListBase.xml
+func (gl *GL) ListBase(base uint32) {
+ C.gl4_3compat_glListBase(gl.funcs, C.GLuint(base))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenLists.xml
+func (gl *GL) GenLists(range_ int32) uint32 {
+ glresult := C.gl4_3compat_glGenLists(gl.funcs, C.GLsizei(range_))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteLists.xml
+func (gl *GL) DeleteLists(list uint32, range_ int32) {
+ C.gl4_3compat_glDeleteLists(gl.funcs, C.GLuint(list), C.GLsizei(range_))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCallLists.xml
+func (gl *GL) CallLists(n int, gltype glbase.Enum, lists interface{}) {
+ var lists_ptr unsafe.Pointer
+ var lists_v = reflect.ValueOf(lists)
+ if lists != nil && lists_v.Kind() != reflect.Slice {
+ panic("parameter lists must be a slice")
+ }
+ if lists != nil {
+ lists_ptr = unsafe.Pointer(lists_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glCallLists(gl.funcs, C.GLsizei(n), C.GLenum(gltype), lists_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCallList.xml
+func (gl *GL) CallList(list uint32) {
+ C.gl4_3compat_glCallList(gl.funcs, C.GLuint(list))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndList.xml
+func (gl *GL) EndList() {
+ C.gl4_3compat_glEndList(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNewList.xml
+func (gl *GL) NewList(list uint32, mode glbase.Enum) {
+ C.gl4_3compat_glNewList(gl.funcs, C.GLuint(list), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPushClientAttrib.xml
+func (gl *GL) PushClientAttrib(mask glbase.Bitfield) {
+ C.gl4_3compat_glPushClientAttrib(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPopClientAttrib.xml
+func (gl *GL) PopClientAttrib() {
+ C.gl4_3compat_glPopClientAttrib(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrioritizeTextures.xml
+func (gl *GL) PrioritizeTextures(n int, textures []glbase.Texture, priorities []float32) {
+ C.gl4_3compat_glPrioritizeTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLfloat)(unsafe.Pointer(&priorities[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glAreTexturesResident.xml
+func (gl *GL) AreTexturesResident(n int, textures []glbase.Texture, residences []bool) bool {
+ glresult := C.gl4_3compat_glAreTexturesResident(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])), (*C.GLboolean)(unsafe.Pointer(&residences[0])))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexPointer.xml
+func (gl *GL) VertexPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glVertexPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordPointer.xml
+func (gl *GL) TexCoordPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glTexCoordPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalPointer.xml
+func (gl *GL) NormalPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glNormalPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInterleavedArrays.xml
+func (gl *GL) InterleavedArrays(format glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glInterleavedArrays(gl.funcs, C.GLenum(format), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexPointer.xml
+func (gl *GL) IndexPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glIndexPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableClientState.xml
+func (gl *GL) EnableClientState(array glbase.Enum) {
+ C.gl4_3compat_glEnableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEdgeFlagPointer.xml
+func (gl *GL) EdgeFlagPointer(stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glEdgeFlagPointer(gl.funcs, C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableClientState.xml
+func (gl *GL) DisableClientState(array glbase.Enum) {
+ C.gl4_3compat_glDisableClientState(gl.funcs, C.GLenum(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorPointer.xml
+func (gl *GL) ColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glArrayElement.xml
+func (gl *GL) ArrayElement(i int32) {
+ C.gl4_3compat_glArrayElement(gl.funcs, C.GLint(i))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResetMinmax.xml
+func (gl *GL) ResetMinmax(target glbase.Enum) {
+ C.gl4_3compat_glResetMinmax(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResetHistogram.xml
+func (gl *GL) ResetHistogram(target glbase.Enum) {
+ C.gl4_3compat_glResetHistogram(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinmax.xml
+func (gl *GL) Minmax(target, internalFormat glbase.Enum, sink bool) {
+ C.gl4_3compat_glMinmax(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHistogram.xml
+func (gl *GL) Histogram(target glbase.Enum, width int, internalFormat glbase.Enum, sink bool) {
+ C.gl4_3compat_glHistogram(gl.funcs, C.GLenum(target), C.GLsizei(width), C.GLenum(internalFormat), *(*C.GLboolean)(unsafe.Pointer(&sink)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmaxParameteriv.xml
+func (gl *GL) GetMinmaxParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetMinmaxParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmaxParameterfv.xml
+func (gl *GL) GetMinmaxParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetMinmaxParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMinmax.xml
+func (gl *GL) GetMinmax(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glGetMinmax(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogramParameteriv.xml
+func (gl *GL) GetHistogramParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetHistogramParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogramParameterfv.xml
+func (gl *GL) GetHistogramParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetHistogramParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetHistogram.xml
+func (gl *GL) GetHistogram(target glbase.Enum, reset bool, format, gltype glbase.Enum, values interface{}) {
+ var values_ptr unsafe.Pointer
+ var values_v = reflect.ValueOf(values)
+ if values != nil && values_v.Kind() != reflect.Slice {
+ panic("parameter values must be a slice")
+ }
+ if values != nil {
+ values_ptr = unsafe.Pointer(values_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glGetHistogram(gl.funcs, C.GLenum(target), *(*C.GLboolean)(unsafe.Pointer(&reset)), C.GLenum(format), C.GLenum(gltype), values_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSeparableFilter2D.xml
+func (gl *GL) SeparableFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, row, column interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glSeparableFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSeparableFilter.xml
+func (gl *GL) GetSeparableFilter(target, format, gltype glbase.Enum, row, column, span interface{}) {
+ var row_ptr unsafe.Pointer
+ var row_v = reflect.ValueOf(row)
+ if row != nil && row_v.Kind() != reflect.Slice {
+ panic("parameter row must be a slice")
+ }
+ if row != nil {
+ row_ptr = unsafe.Pointer(row_v.Index(0).Addr().Pointer())
+ }
+ var column_ptr unsafe.Pointer
+ var column_v = reflect.ValueOf(column)
+ if column != nil && column_v.Kind() != reflect.Slice {
+ panic("parameter column must be a slice")
+ }
+ if column != nil {
+ column_ptr = unsafe.Pointer(column_v.Index(0).Addr().Pointer())
+ }
+ var span_ptr unsafe.Pointer
+ var span_v = reflect.ValueOf(span)
+ if span != nil && span_v.Kind() != reflect.Slice {
+ panic("parameter span must be a slice")
+ }
+ if span != nil {
+ span_ptr = unsafe.Pointer(span_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glGetSeparableFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), row_ptr, column_ptr, span_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionParameteriv.xml
+func (gl *GL) GetConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionParameterfv.xml
+func (gl *GL) GetConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetConvolutionFilter.xml
+func (gl *GL) GetConvolutionFilter(target, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glGetConvolutionFilter(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyConvolutionFilter2D.xml
+func (gl *GL) CopyConvolutionFilter2D(target, internalFormat glbase.Enum, x, y, width, height int) {
+ C.gl4_3compat_glCopyConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyConvolutionFilter1D.xml
+func (gl *GL) CopyConvolutionFilter1D(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl4_3compat_glCopyConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameteriv.xml
+func (gl *GL) ConvolutionParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glConvolutionParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameteri.xml
+func (gl *GL) ConvolutionParameteri(target, pname glbase.Enum, params int32) {
+ C.gl4_3compat_glConvolutionParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(params))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameterfv.xml
+func (gl *GL) ConvolutionParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glConvolutionParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionParameterf.xml
+func (gl *GL) ConvolutionParameterf(target, pname glbase.Enum, params float32) {
+ C.gl4_3compat_glConvolutionParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(params))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionFilter2D.xml
+func (gl *GL) ConvolutionFilter2D(target, internalFormat glbase.Enum, width, height int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glConvolutionFilter2D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glConvolutionFilter1D.xml
+func (gl *GL) ConvolutionFilter1D(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, image interface{}) {
+ var image_ptr unsafe.Pointer
+ var image_v = reflect.ValueOf(image)
+ if image != nil && image_v.Kind() != reflect.Slice {
+ panic("parameter image must be a slice")
+ }
+ if image != nil {
+ image_ptr = unsafe.Pointer(image_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glConvolutionFilter1D(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), image_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyColorSubTable.xml
+func (gl *GL) CopyColorSubTable(target glbase.Enum, start int32, x, y, width int) {
+ C.gl4_3compat_glCopyColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorSubTable.xml
+func (gl *GL) ColorSubTable(target glbase.Enum, start int32, count int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glColorSubTable(gl.funcs, C.GLenum(target), C.GLsizei(start), C.GLsizei(count), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTableParameteriv.xml
+func (gl *GL) GetColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glGetColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTableParameterfv.xml
+func (gl *GL) GetColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glGetColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetColorTable.xml
+func (gl *GL) GetColorTable(target, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glGetColorTable(gl.funcs, C.GLenum(target), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyColorTable.xml
+func (gl *GL) CopyColorTable(target, internalFormat glbase.Enum, x, y, width int) {
+ C.gl4_3compat_glCopyColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTableParameteriv.xml
+func (gl *GL) ColorTableParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3compat_glColorTableParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTableParameterfv.xml
+func (gl *GL) ColorTableParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3compat_glColorTableParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorTable.xml
+func (gl *GL) ColorTable(target, internalFormat glbase.Enum, width int, format, gltype glbase.Enum, table interface{}) {
+ var table_ptr unsafe.Pointer
+ var table_v = reflect.ValueOf(table)
+ if table != nil && table_v.Kind() != reflect.Slice {
+ panic("parameter table must be a slice")
+ }
+ if table != nil {
+ table_ptr = unsafe.Pointer(table_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glColorTable(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), table_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultTransposeMatrixd.xml
+func (gl *GL) MultTransposeMatrixd(m []float64) {
+ C.gl4_3compat_glMultTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultTransposeMatrixf.xml
+func (gl *GL) MultTransposeMatrixf(m []float32) {
+ C.gl4_3compat_glMultTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadTransposeMatrixd.xml
+func (gl *GL) LoadTransposeMatrixd(m []float64) {
+ C.gl4_3compat_glLoadTransposeMatrixd(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLoadTransposeMatrixf.xml
+func (gl *GL) LoadTransposeMatrixf(m []float32) {
+ C.gl4_3compat_glLoadTransposeMatrixf(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&m[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4sv.xml
+func (gl *GL) MultiTexCoord4sv(target glbase.Enum, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord4sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4s.xml
+func (gl *GL) MultiTexCoord4s(target glbase.Enum, s, t, r, q int16) {
+ C.gl4_3compat_glMultiTexCoord4s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r), C.GLshort(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4iv.xml
+func (gl *GL) MultiTexCoord4iv(target glbase.Enum, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord4iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4i.xml
+func (gl *GL) MultiTexCoord4i(target glbase.Enum, s, t, r, q int32) {
+ C.gl4_3compat_glMultiTexCoord4i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r), C.GLint(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4fv.xml
+func (gl *GL) MultiTexCoord4fv(target glbase.Enum, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord4fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4f.xml
+func (gl *GL) MultiTexCoord4f(target glbase.Enum, s, t, r, q float32) {
+ C.gl4_3compat_glMultiTexCoord4f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r), C.GLfloat(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4dv.xml
+func (gl *GL) MultiTexCoord4dv(target glbase.Enum, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord4dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord4d.xml
+func (gl *GL) MultiTexCoord4d(target glbase.Enum, s, t, r, q float64) {
+ C.gl4_3compat_glMultiTexCoord4d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r), C.GLdouble(q))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3sv.xml
+func (gl *GL) MultiTexCoord3sv(target glbase.Enum, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord3sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3s.xml
+func (gl *GL) MultiTexCoord3s(target glbase.Enum, s, t, r int16) {
+ C.gl4_3compat_glMultiTexCoord3s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t), C.GLshort(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3iv.xml
+func (gl *GL) MultiTexCoord3iv(target glbase.Enum, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord3iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3i.xml
+func (gl *GL) MultiTexCoord3i(target glbase.Enum, s, t, r int32) {
+ C.gl4_3compat_glMultiTexCoord3i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t), C.GLint(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3fv.xml
+func (gl *GL) MultiTexCoord3fv(target glbase.Enum, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord3fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3f.xml
+func (gl *GL) MultiTexCoord3f(target glbase.Enum, s, t, r float32) {
+ C.gl4_3compat_glMultiTexCoord3f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t), C.GLfloat(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3dv.xml
+func (gl *GL) MultiTexCoord3dv(target glbase.Enum, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord3dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord3d.xml
+func (gl *GL) MultiTexCoord3d(target glbase.Enum, s, t, r float64) {
+ C.gl4_3compat_glMultiTexCoord3d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t), C.GLdouble(r))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2sv.xml
+func (gl *GL) MultiTexCoord2sv(target glbase.Enum, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord2sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2s.xml
+func (gl *GL) MultiTexCoord2s(target glbase.Enum, s, t int16) {
+ C.gl4_3compat_glMultiTexCoord2s(gl.funcs, C.GLenum(target), C.GLshort(s), C.GLshort(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2iv.xml
+func (gl *GL) MultiTexCoord2iv(target glbase.Enum, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord2iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2i.xml
+func (gl *GL) MultiTexCoord2i(target glbase.Enum, s, t int32) {
+ C.gl4_3compat_glMultiTexCoord2i(gl.funcs, C.GLenum(target), C.GLint(s), C.GLint(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2fv.xml
+func (gl *GL) MultiTexCoord2fv(target glbase.Enum, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord2fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2f.xml
+func (gl *GL) MultiTexCoord2f(target glbase.Enum, s, t float32) {
+ C.gl4_3compat_glMultiTexCoord2f(gl.funcs, C.GLenum(target), C.GLfloat(s), C.GLfloat(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2dv.xml
+func (gl *GL) MultiTexCoord2dv(target glbase.Enum, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glMultiTexCoord2dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord2d.xml
+func (gl *GL) MultiTexCoord2d(target glbase.Enum, s, t float64) {
+ C.gl4_3compat_glMultiTexCoord2d(gl.funcs, C.GLenum(target), C.GLdouble(s), C.GLdouble(t))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1sv.xml
+func (gl *GL) MultiTexCoord1sv(target glbase.Enum, v []int16) {
+ C.gl4_3compat_glMultiTexCoord1sv(gl.funcs, C.GLenum(target), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1s.xml
+func (gl *GL) MultiTexCoord1s(target glbase.Enum, s int16) {
+ C.gl4_3compat_glMultiTexCoord1s(gl.funcs, C.GLenum(target), C.GLshort(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1iv.xml
+func (gl *GL) MultiTexCoord1iv(target glbase.Enum, v []int32) {
+ C.gl4_3compat_glMultiTexCoord1iv(gl.funcs, C.GLenum(target), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1i.xml
+func (gl *GL) MultiTexCoord1i(target glbase.Enum, s int32) {
+ C.gl4_3compat_glMultiTexCoord1i(gl.funcs, C.GLenum(target), C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1fv.xml
+func (gl *GL) MultiTexCoord1fv(target glbase.Enum, v []float32) {
+ C.gl4_3compat_glMultiTexCoord1fv(gl.funcs, C.GLenum(target), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1f.xml
+func (gl *GL) MultiTexCoord1f(target glbase.Enum, s float32) {
+ C.gl4_3compat_glMultiTexCoord1f(gl.funcs, C.GLenum(target), C.GLfloat(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1dv.xml
+func (gl *GL) MultiTexCoord1dv(target glbase.Enum, v []float64) {
+ C.gl4_3compat_glMultiTexCoord1dv(gl.funcs, C.GLenum(target), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoord1d.xml
+func (gl *GL) MultiTexCoord1d(target glbase.Enum, s float64) {
+ C.gl4_3compat_glMultiTexCoord1d(gl.funcs, C.GLenum(target), C.GLdouble(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientActiveTexture.xml
+func (gl *GL) ClientActiveTexture(texture glbase.Enum) {
+ C.gl4_3compat_glClientActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3sv.xml
+func (gl *GL) WindowPos3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glWindowPos3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3s.xml
+func (gl *GL) WindowPos3s(x, y, z int16) {
+ C.gl4_3compat_glWindowPos3s(gl.funcs, C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3iv.xml
+func (gl *GL) WindowPos3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glWindowPos3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3i.xml
+func (gl *GL) WindowPos3i(x, y, z int) {
+ C.gl4_3compat_glWindowPos3i(gl.funcs, C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3fv.xml
+func (gl *GL) WindowPos3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glWindowPos3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3f.xml
+func (gl *GL) WindowPos3f(x, y, z float32) {
+ C.gl4_3compat_glWindowPos3f(gl.funcs, C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3dv.xml
+func (gl *GL) WindowPos3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glWindowPos3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos3d.xml
+func (gl *GL) WindowPos3d(x, y, z float64) {
+ C.gl4_3compat_glWindowPos3d(gl.funcs, C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2sv.xml
+func (gl *GL) WindowPos2sv(v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glWindowPos2sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2s.xml
+func (gl *GL) WindowPos2s(x, y int16) {
+ C.gl4_3compat_glWindowPos2s(gl.funcs, C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2iv.xml
+func (gl *GL) WindowPos2iv(v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glWindowPos2iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2i.xml
+func (gl *GL) WindowPos2i(x, y int) {
+ C.gl4_3compat_glWindowPos2i(gl.funcs, C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2fv.xml
+func (gl *GL) WindowPos2fv(v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glWindowPos2fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2f.xml
+func (gl *GL) WindowPos2f(x, y float32) {
+ C.gl4_3compat_glWindowPos2f(gl.funcs, C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2dv.xml
+func (gl *GL) WindowPos2dv(v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glWindowPos2dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWindowPos2d.xml
+func (gl *GL) WindowPos2d(x, y float64) {
+ C.gl4_3compat_glWindowPos2d(gl.funcs, C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorPointer.xml
+func (gl *GL) SecondaryColorPointer(size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glSecondaryColorPointer(gl.funcs, C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3usv.xml
+func (gl *GL) SecondaryColor3usv(v []uint16) {
+ C.gl4_3compat_glSecondaryColor3usv(gl.funcs, (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3us.xml
+func (gl *GL) SecondaryColor3us(red, green, blue uint16) {
+ C.gl4_3compat_glSecondaryColor3us(gl.funcs, C.GLushort(red), C.GLushort(green), C.GLushort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3uiv.xml
+func (gl *GL) SecondaryColor3uiv(v []uint32) {
+ C.gl4_3compat_glSecondaryColor3uiv(gl.funcs, (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ui.xml
+func (gl *GL) SecondaryColor3ui(red, green, blue uint32) {
+ C.gl4_3compat_glSecondaryColor3ui(gl.funcs, C.GLuint(red), C.GLuint(green), C.GLuint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ubv.xml
+func (gl *GL) SecondaryColor3ubv(v []uint8) {
+ C.gl4_3compat_glSecondaryColor3ubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3ub.xml
+func (gl *GL) SecondaryColor3ub(red, green, blue uint8) {
+ C.gl4_3compat_glSecondaryColor3ub(gl.funcs, C.GLubyte(red), C.GLubyte(green), C.GLubyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3sv.xml
+func (gl *GL) SecondaryColor3sv(v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glSecondaryColor3sv(gl.funcs, (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3s.xml
+func (gl *GL) SecondaryColor3s(red, green, blue int16) {
+ C.gl4_3compat_glSecondaryColor3s(gl.funcs, C.GLshort(red), C.GLshort(green), C.GLshort(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3iv.xml
+func (gl *GL) SecondaryColor3iv(v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glSecondaryColor3iv(gl.funcs, (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3i.xml
+func (gl *GL) SecondaryColor3i(red, green, blue int32) {
+ C.gl4_3compat_glSecondaryColor3i(gl.funcs, C.GLint(red), C.GLint(green), C.GLint(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3fv.xml
+func (gl *GL) SecondaryColor3fv(v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glSecondaryColor3fv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3f.xml
+func (gl *GL) SecondaryColor3f(red, green, blue float32) {
+ C.gl4_3compat_glSecondaryColor3f(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3dv.xml
+func (gl *GL) SecondaryColor3dv(v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glSecondaryColor3dv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3d.xml
+func (gl *GL) SecondaryColor3d(red, green, blue float64) {
+ C.gl4_3compat_glSecondaryColor3d(gl.funcs, C.GLdouble(red), C.GLdouble(green), C.GLdouble(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3bv.xml
+func (gl *GL) SecondaryColor3bv(v []byte) {
+ C.gl4_3compat_glSecondaryColor3bv(gl.funcs, (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColor3b.xml
+func (gl *GL) SecondaryColor3b(red, green, blue byte) {
+ C.gl4_3compat_glSecondaryColor3b(gl.funcs, C.GLbyte(red), C.GLbyte(green), C.GLbyte(blue))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordPointer.xml
+func (gl *GL) FogCoordPointer(gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3compat_glFogCoordPointer(gl.funcs, C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoorddv.xml
+func (gl *GL) FogCoorddv(coord []float64) {
+ C.gl4_3compat_glFogCoorddv(gl.funcs, (*C.GLdouble)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordd.xml
+func (gl *GL) FogCoordd(coord float64) {
+ C.gl4_3compat_glFogCoordd(gl.funcs, C.GLdouble(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordfv.xml
+func (gl *GL) FogCoordfv(coord []float32) {
+ C.gl4_3compat_glFogCoordfv(gl.funcs, (*C.GLfloat)(unsafe.Pointer(&coord[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFogCoordf.xml
+func (gl *GL) FogCoordf(coord float32) {
+ C.gl4_3compat_glFogCoordf(gl.funcs, C.GLfloat(coord))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4usv.xml
+func (gl *GL) VertexAttrib4usv(index glbase.Attrib, v []uint16) {
+ C.gl4_3compat_glVertexAttrib4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4uiv.xml
+func (gl *GL) VertexAttrib4uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_3compat_glVertexAttrib4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4ubv.xml
+func (gl *GL) VertexAttrib4ubv(index glbase.Attrib, v []uint8) {
+ C.gl4_3compat_glVertexAttrib4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4sv.xml
+func (gl *GL) VertexAttrib4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4s.xml
+func (gl *GL) VertexAttrib4s(index glbase.Attrib, x, y, z, w int16) {
+ C.gl4_3compat_glVertexAttrib4s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z), C.GLshort(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4iv.xml
+func (gl *GL) VertexAttrib4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, v []float32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gl4_3compat_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4dv.xml
+func (gl *GL) VertexAttrib4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4d.xml
+func (gl *GL) VertexAttrib4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_3compat_glVertexAttrib4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4bv.xml
+func (gl *GL) VertexAttrib4bv(index glbase.Attrib, v []byte) {
+ C.gl4_3compat_glVertexAttrib4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nusv.xml
+func (gl *GL) VertexAttrib4Nusv(index glbase.Attrib, v []uint16) {
+ C.gl4_3compat_glVertexAttrib4Nusv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nuiv.xml
+func (gl *GL) VertexAttrib4Nuiv(index glbase.Attrib, v []uint32) {
+ C.gl4_3compat_glVertexAttrib4Nuiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nubv.xml
+func (gl *GL) VertexAttrib4Nubv(index glbase.Attrib, v []uint8) {
+ C.gl4_3compat_glVertexAttrib4Nubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nub.xml
+func (gl *GL) VertexAttrib4Nub(index glbase.Attrib, x, y, z, w uint8) {
+ C.gl4_3compat_glVertexAttrib4Nub(gl.funcs, C.GLuint(index), C.GLubyte(x), C.GLubyte(y), C.GLubyte(z), C.GLubyte(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nsv.xml
+func (gl *GL) VertexAttrib4Nsv(index glbase.Attrib, v []int16) {
+ C.gl4_3compat_glVertexAttrib4Nsv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Niv.xml
+func (gl *GL) VertexAttrib4Niv(index glbase.Attrib, v []int32) {
+ C.gl4_3compat_glVertexAttrib4Niv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib4Nbv.xml
+func (gl *GL) VertexAttrib4Nbv(index glbase.Attrib, v []byte) {
+ C.gl4_3compat_glVertexAttrib4Nbv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3sv.xml
+func (gl *GL) VertexAttrib3sv(index glbase.Attrib, v []int16) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib3sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3s.xml
+func (gl *GL) VertexAttrib3s(index glbase.Attrib, x, y, z int16) {
+ C.gl4_3compat_glVertexAttrib3s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y), C.GLshort(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, v []float32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gl4_3compat_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3dv.xml
+func (gl *GL) VertexAttrib3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib3d.xml
+func (gl *GL) VertexAttrib3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_3compat_glVertexAttrib3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2sv.xml
+func (gl *GL) VertexAttrib2sv(index glbase.Attrib, v []int16) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib2sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2s.xml
+func (gl *GL) VertexAttrib2s(index glbase.Attrib, x, y int16) {
+ C.gl4_3compat_glVertexAttrib2s(gl.funcs, C.GLuint(index), C.GLshort(x), C.GLshort(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, v []float32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gl4_3compat_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2dv.xml
+func (gl *GL) VertexAttrib2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttrib2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib2d.xml
+func (gl *GL) VertexAttrib2d(index glbase.Attrib, x, y float64) {
+ C.gl4_3compat_glVertexAttrib2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1sv.xml
+func (gl *GL) VertexAttrib1sv(index glbase.Attrib, v []int16) {
+ C.gl4_3compat_glVertexAttrib1sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1s.xml
+func (gl *GL) VertexAttrib1s(index glbase.Attrib, x int16) {
+ C.gl4_3compat_glVertexAttrib1s(gl.funcs, C.GLuint(index), C.GLshort(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, v []float32) {
+ C.gl4_3compat_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gl4_3compat_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1dv.xml
+func (gl *GL) VertexAttrib1dv(index glbase.Attrib, v []float64) {
+ C.gl4_3compat_glVertexAttrib1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttrib1d.xml
+func (gl *GL) VertexAttrib1d(index glbase.Attrib, x float64) {
+ C.gl4_3compat_glVertexAttrib1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4usv.xml
+func (gl *GL) VertexAttribI4usv(index glbase.Attrib, v []uint16) {
+ C.gl4_3compat_glVertexAttribI4usv(gl.funcs, C.GLuint(index), (*C.GLushort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4ubv.xml
+func (gl *GL) VertexAttribI4ubv(index glbase.Attrib, v []uint8) {
+ C.gl4_3compat_glVertexAttribI4ubv(gl.funcs, C.GLuint(index), (*C.GLubyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4sv.xml
+func (gl *GL) VertexAttribI4sv(index glbase.Attrib, v []int16) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttribI4sv(gl.funcs, C.GLuint(index), (*C.GLshort)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4bv.xml
+func (gl *GL) VertexAttribI4bv(index glbase.Attrib, v []byte) {
+ C.gl4_3compat_glVertexAttribI4bv(gl.funcs, C.GLuint(index), (*C.GLbyte)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4uiv.xml
+func (gl *GL) VertexAttribI4uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_3compat_glVertexAttribI4uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3uiv.xml
+func (gl *GL) VertexAttribI3uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_3compat_glVertexAttribI3uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2uiv.xml
+func (gl *GL) VertexAttribI2uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_3compat_glVertexAttribI2uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1uiv.xml
+func (gl *GL) VertexAttribI1uiv(index glbase.Attrib, v []uint32) {
+ C.gl4_3compat_glVertexAttribI1uiv(gl.funcs, C.GLuint(index), (*C.GLuint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4iv.xml
+func (gl *GL) VertexAttribI4iv(index glbase.Attrib, v []int32) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttribI4iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3iv.xml
+func (gl *GL) VertexAttribI3iv(index glbase.Attrib, v []int32) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttribI3iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2iv.xml
+func (gl *GL) VertexAttribI2iv(index glbase.Attrib, v []int32) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3compat_glVertexAttribI2iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1iv.xml
+func (gl *GL) VertexAttribI1iv(index glbase.Attrib, v []int32) {
+ C.gl4_3compat_glVertexAttribI1iv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4ui.xml
+func (gl *GL) VertexAttribI4ui(index glbase.Attrib, x, y, z, w uint32) {
+ C.gl4_3compat_glVertexAttribI4ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z), C.GLuint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3ui.xml
+func (gl *GL) VertexAttribI3ui(index glbase.Attrib, x, y, z uint32) {
+ C.gl4_3compat_glVertexAttribI3ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y), C.GLuint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2ui.xml
+func (gl *GL) VertexAttribI2ui(index glbase.Attrib, x, y uint32) {
+ C.gl4_3compat_glVertexAttribI2ui(gl.funcs, C.GLuint(index), C.GLuint(x), C.GLuint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1ui.xml
+func (gl *GL) VertexAttribI1ui(index glbase.Attrib, x uint32) {
+ C.gl4_3compat_glVertexAttribI1ui(gl.funcs, C.GLuint(index), C.GLuint(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI4i.xml
+func (gl *GL) VertexAttribI4i(index glbase.Attrib, x, y, z, w int) {
+ C.gl4_3compat_glVertexAttribI4i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z), C.GLint(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI3i.xml
+func (gl *GL) VertexAttribI3i(index glbase.Attrib, x, y, z int) {
+ C.gl4_3compat_glVertexAttribI3i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y), C.GLint(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI2i.xml
+func (gl *GL) VertexAttribI2i(index glbase.Attrib, x, y int) {
+ C.gl4_3compat_glVertexAttribI2i(gl.funcs, C.GLuint(index), C.GLint(x), C.GLint(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribI1i.xml
+func (gl *GL) VertexAttribI1i(index glbase.Attrib, x int) {
+ C.gl4_3compat_glVertexAttribI1i(gl.funcs, C.GLuint(index), C.GLint(x))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/funcs.cpp
new file mode 100644
index 000000000..fec3ebd31
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/funcs.cpp
@@ -0,0 +1,2946 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions_4_3_core.h>
+
+#include "funcs.h"
+
+void *gl4_3core_funcs() {
+ QOpenGLFunctions_4_3_Core* funcs = QOpenGLContext::currentContext()->versionFunctions<QOpenGLFunctions_4_3_Core>();
+ if (!funcs) {
+ return 0;
+ }
+ funcs->initializeOpenGLFunctions();
+ return funcs;
+}
+
+
+void gl4_3core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glViewport(x, y, width, height);
+}
+
+void gl4_3core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDepthRange(nearVal, farVal);
+}
+
+GLboolean gl4_3core_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabled(cap);
+}
+
+void gl4_3core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameteriv(target, level, pname, params);
+}
+
+void gl4_3core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexLevelParameterfv(target, level, pname, params);
+}
+
+void gl4_3core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameteriv(target, pname, params);
+}
+
+void gl4_3core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterfv(target, pname, params);
+}
+
+void gl4_3core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexImage(target, level, format, gltype, pixels);
+}
+
+void gl4_3core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegerv(pname, params);
+}
+
+void gl4_3core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetFloatv(pname, params);
+}
+
+GLenum gl4_3core_glGetError(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetError();
+}
+
+void gl4_3core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetDoublev(pname, params);
+}
+
+void gl4_3core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleanv(pname, params);
+}
+
+void gl4_3core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gl4_3core_glReadBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glReadBuffer(mode);
+}
+
+void gl4_3core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPixelStorei(pname, param);
+}
+
+void gl4_3core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPixelStoref(pname, param);
+}
+
+void gl4_3core_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDepthFunc(glfunc);
+}
+
+void gl4_3core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilOp(fail, zfail, zpass);
+}
+
+void gl4_3core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilFunc(glfunc, ref, mask);
+}
+
+void gl4_3core_glLogicOp(void *_glfuncs, GLenum opcode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glLogicOp(opcode);
+}
+
+void gl4_3core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunc(sfactor, dfactor);
+}
+
+void gl4_3core_glFlush(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFlush();
+}
+
+void gl4_3core_glFinish(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFinish();
+}
+
+void gl4_3core_glEnable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glEnable(cap);
+}
+
+void gl4_3core_glDisable(void *_glfuncs, GLenum cap)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDisable(cap);
+}
+
+void gl4_3core_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDepthMask(flag);
+}
+
+void gl4_3core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glColorMask(red, green, blue, alpha);
+}
+
+void gl4_3core_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilMask(mask);
+}
+
+void gl4_3core_glClearDepth(void *_glfuncs, GLdouble depth)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearDepth(depth);
+}
+
+void gl4_3core_glClearStencil(void *_glfuncs, GLint s)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearStencil(s);
+}
+
+void gl4_3core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearColor(red, green, blue, alpha);
+}
+
+void gl4_3core_glClear(void *_glfuncs, GLbitfield mask)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClear(mask);
+}
+
+void gl4_3core_glDrawBuffer(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffer(mode);
+}
+
+void gl4_3core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gl4_3core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage1D(target, level, internalFormat, width, border, format, gltype, pixels);
+}
+
+void gl4_3core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteriv(target, pname, params);
+}
+
+void gl4_3core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameteri(target, pname, param);
+}
+
+void gl4_3core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterfv(target, pname, params);
+}
+
+void gl4_3core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterf(target, pname, param);
+}
+
+void gl4_3core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glScissor(x, y, width, height);
+}
+
+void gl4_3core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPolygonMode(face, mode);
+}
+
+void gl4_3core_glPointSize(void *_glfuncs, GLfloat size)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPointSize(size);
+}
+
+void gl4_3core_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glLineWidth(width);
+}
+
+void gl4_3core_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glHint(target, mode);
+}
+
+void gl4_3core_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFrontFace(mode);
+}
+
+void gl4_3core_glCullFace(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCullFace(mode);
+}
+
+void gl4_3core_glIndexubv(void *_glfuncs, const GLubyte* c)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glIndexubv(c);
+}
+
+void gl4_3core_glIndexub(void *_glfuncs, GLubyte c)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glIndexub(c);
+}
+
+GLboolean gl4_3core_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsTexture(texture);
+}
+
+void gl4_3core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenTextures(n, textures);
+}
+
+void gl4_3core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTextures(n, textures);
+}
+
+void gl4_3core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindTexture(target, texture);
+}
+
+void gl4_3core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gl4_3core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage1D(target, level, xoffset, width, format, gltype, pixels);
+}
+
+void gl4_3core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gl4_3core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage1D(target, level, xoffset, x, y, width);
+}
+
+void gl4_3core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gl4_3core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexImage1D(target, level, internalFormat, x, y, width, border);
+}
+
+void gl4_3core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPolygonOffset(factor, units);
+}
+
+void gl4_3core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElements(mode, count, gltype, indices);
+}
+
+void gl4_3core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawArrays(mode, first, count);
+}
+
+void gl4_3core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void gl4_3core_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_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, gltype, pixels);
+}
+
+void gl4_3core_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_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3D(target, level, internalFormat, width, height, depth, border, format, gltype, pixels);
+}
+
+void gl4_3core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElements(mode, start, end, count, gltype, indices);
+}
+
+void gl4_3core_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gl4_3core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gl4_3core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetCompressedTexImage(target, level, img);
+}
+
+void gl4_3core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
+}
+
+void gl4_3core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void gl4_3core_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_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void gl4_3core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage1D(target, level, internalFormat, width, border, imageSize, data);
+}
+
+void gl4_3core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gl4_3core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data);
+}
+
+void gl4_3core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gl4_3core_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gl4_3core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteriv(pname, params);
+}
+
+void gl4_3core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPointParameteri(pname, param);
+}
+
+void gl4_3core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterfv(pname, params);
+}
+
+void gl4_3core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPointParameterf(pname, param);
+}
+
+void gl4_3core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiDrawArrays(mode, first, count, drawcount);
+}
+
+void gl4_3core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
+}
+
+void gl4_3core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+GLboolean gl4_3core_glUnmapBuffer(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glUnmapBuffer(target);
+}
+
+void gl4_3core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferSubData(target, offset, size, data);
+}
+
+void gl4_3core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+void gl4_3core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+GLboolean gl4_3core_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+void gl4_3core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gl4_3core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gl4_3core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gl4_3core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectuiv(id, pname, params);
+}
+
+void gl4_3core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectiv(id, pname, params);
+}
+
+void gl4_3core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryiv(target, pname, params);
+}
+
+void gl4_3core_glEndQuery(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glEndQuery(target);
+}
+
+void gl4_3core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBeginQuery(target, id);
+}
+
+GLboolean gl4_3core_glIsQuery(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsQuery(id);
+}
+
+void gl4_3core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteQueries(n, ids);
+}
+
+void gl4_3core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenQueries(n, ids);
+}
+
+void gl4_3core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gl4_3core_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gl4_3core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gl4_3core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gl4_3core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gl4_3core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gl4_3core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gl4_3core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gl4_3core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gl4_3core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gl4_3core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gl4_3core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gl4_3core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gl4_3core_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gl4_3core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gl4_3core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gl4_3core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gl4_3core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gl4_3core_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gl4_3core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gl4_3core_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+GLboolean gl4_3core_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+GLboolean gl4_3core_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+void gl4_3core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+void gl4_3core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gl4_3core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribdv(index, pname, params);
+}
+
+void gl4_3core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+void gl4_3core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+GLint gl4_3core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gl4_3core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gl4_3core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gl4_3core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gl4_3core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gl4_3core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+GLint gl4_3core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gl4_3core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxCount, count, obj);
+}
+
+void gl4_3core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_3core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_3core_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gl4_3core_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gl4_3core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gl4_3core_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gl4_3core_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+GLuint gl4_3core_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+GLuint gl4_3core_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+void gl4_3core_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gl4_3core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gl4_3core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gl4_3core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gl4_3core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gl4_3core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, sfail, dpfail, dppass);
+}
+
+void gl4_3core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawBuffers(n, bufs);
+}
+
+void gl4_3core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gl4_3core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3fv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4fv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2fv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4fv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2fv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3fv(location, count, transpose, value);
+}
+
+GLboolean gl4_3core_glIsVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsVertexArray(array);
+}
+
+void gl4_3core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenVertexArrays(n, arrays);
+}
+
+void gl4_3core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteVertexArrays(n, arrays);
+}
+
+void gl4_3core_glBindVertexArray(void *_glfuncs, GLuint array)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindVertexArray(array);
+}
+
+void gl4_3core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFlushMappedBufferRange(target, offset, length);
+}
+
+void gl4_3core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTextureLayer(target, attachment, texture, level, layer);
+}
+
+void gl4_3core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorageMultisample(target, samples, internalFormat, width, height);
+}
+
+void gl4_3core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+}
+
+void gl4_3core_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gl4_3core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gl4_3core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gl4_3core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
+}
+
+void gl4_3core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gl4_3core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture1D(target, attachment, textarget, texture, level);
+}
+
+GLenum gl4_3core_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gl4_3core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gl4_3core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gl4_3core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+GLboolean gl4_3core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+void gl4_3core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gl4_3core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gl4_3core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gl4_3core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gl4_3core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+GLboolean gl4_3core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+void gl4_3core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfi(buffer, drawbuffer, depth, stencil);
+}
+
+void gl4_3core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferfv(buffer, drawbuffer, value);
+}
+
+void gl4_3core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferuiv(buffer, drawbuffer, value);
+}
+
+void gl4_3core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferiv(buffer, drawbuffer, value);
+}
+
+void gl4_3core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIuiv(target, pname, params);
+}
+
+void gl4_3core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTexParameterIiv(target, pname, params);
+}
+
+void gl4_3core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIuiv(target, pname, params);
+}
+
+void gl4_3core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexParameterIiv(target, pname, params);
+}
+
+void gl4_3core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4uiv(location, count, value);
+}
+
+void gl4_3core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3uiv(location, count, value);
+}
+
+void gl4_3core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2uiv(location, count, value);
+}
+
+void gl4_3core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1uiv(location, count, value);
+}
+
+void gl4_3core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4ui(location, v0, v1, v2, v3);
+}
+
+void gl4_3core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3ui(location, v0, v1, v2);
+}
+
+void gl4_3core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2ui(location, v0, v1);
+}
+
+void gl4_3core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1ui(location, v0);
+}
+
+GLint gl4_3core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataLocation(program, name);
+}
+
+void gl4_3core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocation(program, color, name);
+}
+
+void gl4_3core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformuiv(program, location, params);
+}
+
+void gl4_3core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIuiv(index, pname, params);
+}
+
+void gl4_3core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribIiv(index, pname, params);
+}
+
+void gl4_3core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribIPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_3core_glEndConditionalRender(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glEndConditionalRender();
+}
+
+void gl4_3core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBeginConditionalRender(id, mode);
+}
+
+void gl4_3core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClampColor(target, clamp);
+}
+
+void gl4_3core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetTransformFeedbackVarying(program, index, bufSize, length, size, gltype, name);
+}
+
+void gl4_3core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferBase(target, index, buffer);
+}
+
+void gl4_3core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindBufferRange(target, index, buffer, offset, size);
+}
+
+void gl4_3core_glEndTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glEndTransformFeedback();
+}
+
+void gl4_3core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBeginTransformFeedback(primitiveMode);
+}
+
+GLboolean gl4_3core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsEnabledi(target, index);
+}
+
+void gl4_3core_glDisablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDisablei(target, index);
+}
+
+void gl4_3core_glEnablei(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glEnablei(target, index);
+}
+
+void gl4_3core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetIntegeri_v(target, index, data);
+}
+
+void gl4_3core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBooleani_v(target, index, data);
+}
+
+void gl4_3core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glColorMaski(index, r, g, b, a);
+}
+
+void gl4_3core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+}
+
+void gl4_3core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformBlockBinding(program, v0, v1);
+}
+
+void gl4_3core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+}
+
+void gl4_3core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+}
+
+GLuint gl4_3core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetUniformBlockIndex(program, uniformBlockName);
+}
+
+void gl4_3core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
+}
+
+void gl4_3core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+}
+
+void gl4_3core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPrimitiveRestartIndex(index);
+}
+
+void gl4_3core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexBuffer(target, internalFormat, buffer);
+}
+
+void gl4_3core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstanced(mode, count, gltype, indices, instancecount);
+}
+
+void gl4_3core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstanced(mode, first, count, instancecount);
+}
+
+void gl4_3core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSampleMaski(index, mask);
+}
+
+void gl4_3core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetMultisamplefv(pname, index, val);
+}
+
+void gl4_3core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_3core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexImage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_3core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSynciv(sync, pname, bufSize, length, values);
+}
+
+void gl4_3core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64v(pname, params);
+}
+
+void gl4_3core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glWaitSync(sync, flags, timeout);
+}
+
+GLenum gl4_3core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glClientWaitSync(sync, flags, timeout);
+}
+
+void gl4_3core_glDeleteSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSync(sync);
+}
+
+GLboolean gl4_3core_glIsSync(void *_glfuncs, GLsync sync)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsSync(sync);
+}
+
+GLsync gl4_3core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glFenceSync(condition, flags);
+}
+
+void gl4_3core_glProvokingVertex(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProvokingVertex(mode);
+}
+
+void gl4_3core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertex(mode, count, gltype, indices, instancecount, basevertex);
+}
+
+void gl4_3core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawRangeElementsBaseVertex(mode, start, end, count, gltype, indices, basevertex);
+}
+
+void gl4_3core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsBaseVertex(mode, count, gltype, indices, basevertex);
+}
+
+void gl4_3core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture(target, attachment, texture, level);
+}
+
+void gl4_3core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteri64v(target, pname, params);
+}
+
+void gl4_3core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetInteger64i_v(target, index, data);
+}
+
+void gl4_3core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4uiv(index, gltype, normalized, value);
+}
+
+void gl4_3core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP4ui(index, gltype, normalized, value);
+}
+
+void gl4_3core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3uiv(index, gltype, normalized, value);
+}
+
+void gl4_3core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP3ui(index, gltype, normalized, value);
+}
+
+void gl4_3core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2uiv(index, gltype, normalized, value);
+}
+
+void gl4_3core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP2ui(index, gltype, normalized, value);
+}
+
+void gl4_3core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1uiv(index, gltype, normalized, value);
+}
+
+void gl4_3core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribP1ui(index, gltype, normalized, value);
+}
+
+void gl4_3core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3uiv(gltype, color);
+}
+
+void gl4_3core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSecondaryColorP3ui(gltype, color);
+}
+
+void gl4_3core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glColorP4uiv(gltype, color);
+}
+
+void gl4_3core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glColorP4ui(gltype, color);
+}
+
+void gl4_3core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glColorP3uiv(gltype, color);
+}
+
+void gl4_3core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glColorP3ui(gltype, color);
+}
+
+void gl4_3core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3uiv(gltype, coords);
+}
+
+void gl4_3core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glNormalP3ui(gltype, coords);
+}
+
+void gl4_3core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4uiv(texture, gltype, coords);
+}
+
+void gl4_3core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP4ui(texture, gltype, coords);
+}
+
+void gl4_3core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3uiv(texture, gltype, coords);
+}
+
+void gl4_3core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP3ui(texture, gltype, coords);
+}
+
+void gl4_3core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2uiv(texture, gltype, coords);
+}
+
+void gl4_3core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP2ui(texture, gltype, coords);
+}
+
+void gl4_3core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1uiv(texture, gltype, coords);
+}
+
+void gl4_3core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiTexCoordP1ui(texture, gltype, coords);
+}
+
+void gl4_3core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4uiv(gltype, coords);
+}
+
+void gl4_3core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP4ui(gltype, coords);
+}
+
+void gl4_3core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3uiv(gltype, coords);
+}
+
+void gl4_3core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP3ui(gltype, coords);
+}
+
+void gl4_3core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2uiv(gltype, coords);
+}
+
+void gl4_3core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP2ui(gltype, coords);
+}
+
+void gl4_3core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1uiv(gltype, coords);
+}
+
+void gl4_3core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexCoordP1ui(gltype, coords);
+}
+
+void gl4_3core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4uiv(gltype, value);
+}
+
+void gl4_3core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP4ui(gltype, value);
+}
+
+void gl4_3core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3uiv(gltype, value);
+}
+
+void gl4_3core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP3ui(gltype, value);
+}
+
+void gl4_3core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2uiv(gltype, value);
+}
+
+void gl4_3core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexP2ui(gltype, value);
+}
+
+void gl4_3core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjectui64v(id, pname, params);
+}
+
+void gl4_3core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryObjecti64v(id, pname, params);
+}
+
+void gl4_3core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glQueryCounter(id, target);
+}
+
+void gl4_3core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIuiv(sampler, pname, params);
+}
+
+void gl4_3core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterfv(sampler, pname, params);
+}
+
+void gl4_3core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameterIiv(sampler, pname, params);
+}
+
+void gl4_3core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetSamplerParameteriv(sampler, pname, params);
+}
+
+void gl4_3core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIuiv(sampler, pname, param);
+}
+
+void gl4_3core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterIiv(sampler, pname, param);
+}
+
+void gl4_3core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterfv(sampler, pname, param);
+}
+
+void gl4_3core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameterf(sampler, pname, param);
+}
+
+void gl4_3core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteriv(sampler, pname, param);
+}
+
+void gl4_3core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glSamplerParameteri(sampler, pname, param);
+}
+
+void gl4_3core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindSampler(unit, sampler);
+}
+
+GLboolean gl4_3core_glIsSampler(void *_glfuncs, GLuint sampler)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsSampler(sampler);
+}
+
+void gl4_3core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteSamplers(count, samplers);
+}
+
+void gl4_3core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenSamplers(count, samplers);
+}
+
+GLint gl4_3core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetFragDataIndex(program, name);
+}
+
+void gl4_3core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindFragDataLocationIndexed(program, colorNumber, index, name);
+}
+
+void gl4_3core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribDivisor(index, divisor);
+}
+
+void gl4_3core_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetQueryIndexediv(target, index, pname, params);
+}
+
+void gl4_3core_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glEndQueryIndexed(target, index);
+}
+
+void gl4_3core_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBeginQueryIndexed(target, index, id);
+}
+
+void gl4_3core_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStream(mode, id, stream);
+}
+
+void gl4_3core_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedback(mode, id);
+}
+
+void gl4_3core_glResumeTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glResumeTransformFeedback();
+}
+
+void gl4_3core_glPauseTransformFeedback(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPauseTransformFeedback();
+}
+
+GLboolean gl4_3core_glIsTransformFeedback(void *_glfuncs, GLuint id)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsTransformFeedback(id);
+}
+
+void gl4_3core_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenTransformFeedbacks(n, ids);
+}
+
+void gl4_3core_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteTransformFeedbacks(n, ids);
+}
+
+void gl4_3core_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindTransformFeedback(target, id);
+}
+
+void gl4_3core_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPatchParameterfv(pname, values);
+}
+
+void gl4_3core_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glPatchParameteri(pname, value);
+}
+
+void gl4_3core_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramStageiv(program, shadertype, pname, values);
+}
+
+void gl4_3core_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformSubroutineuiv(shadertype, location, params);
+}
+
+void gl4_3core_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformSubroutinesuiv(shadertype, count, value);
+}
+
+void gl4_3core_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_3core_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformName(program, shadertype, index, bufSize, length, name);
+}
+
+void gl4_3core_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
+}
+
+GLuint gl4_3core_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineIndex(program, shadertype, name);
+}
+
+GLint gl4_3core_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetSubroutineUniformLocation(program, shadertype, name);
+}
+
+void gl4_3core_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetUniformdv(program, location, params);
+}
+
+void gl4_3core_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x3dv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4x2dv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x4dv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3x2dv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x4dv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2x3dv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4dv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3dv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2dv(location, count, transpose, value);
+}
+
+void gl4_3core_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4dv(location, count, value);
+}
+
+void gl4_3core_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3dv(location, count, value);
+}
+
+void gl4_3core_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2dv(location, count, value);
+}
+
+void gl4_3core_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1dv(location, count, value);
+}
+
+void gl4_3core_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform4d(location, v0, v1, v2, v3);
+}
+
+void gl4_3core_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform3d(location, v0, v1, v2);
+}
+
+void gl4_3core_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform2d(location, v0, v1);
+}
+
+void gl4_3core_glUniform1d(void *_glfuncs, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUniform1d(location, v0);
+}
+
+void gl4_3core_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsIndirect(mode, gltype, indirect);
+}
+
+void gl4_3core_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysIndirect(mode, indirect);
+}
+
+void gl4_3core_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void gl4_3core_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendFunci(buf, src, dst);
+}
+
+void gl4_3core_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparatei(buf, modeRGB, modeAlpha);
+}
+
+void gl4_3core_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBlendEquationi(buf, mode);
+}
+
+void gl4_3core_glMinSampleShading(void *_glfuncs, GLfloat value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMinSampleShading(value);
+}
+
+void gl4_3core_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetDoublei_v(target, index, data);
+}
+
+void gl4_3core_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetFloati_v(target, index, data);
+}
+
+void gl4_3core_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDepthRangeIndexed(index, n, f);
+}
+
+void gl4_3core_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDepthRangeArrayv(first, count, v);
+}
+
+void gl4_3core_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glScissorIndexedv(index, v);
+}
+
+void gl4_3core_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glScissorIndexed(index, left, bottom, width, height);
+}
+
+void gl4_3core_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glScissorArrayv(first, count, v);
+}
+
+void gl4_3core_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glViewportIndexedfv(index, v);
+}
+
+void gl4_3core_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glViewportIndexedf(index, x, y, w, h);
+}
+
+void gl4_3core_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glViewportArrayv(first, count, v);
+}
+
+void gl4_3core_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribLdv(index, pname, params);
+}
+
+void gl4_3core_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribLPointer(index, size, gltype, stride, pointer);
+}
+
+void gl4_3core_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4dv(index, v);
+}
+
+void gl4_3core_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3dv(index, v);
+}
+
+void gl4_3core_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2dv(index, v);
+}
+
+void gl4_3core_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1dv(index, v);
+}
+
+void gl4_3core_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL4d(index, x, y, z, w);
+}
+
+void gl4_3core_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL3d(index, x, y, z);
+}
+
+void gl4_3core_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL2d(index, x, y);
+}
+
+void gl4_3core_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribL1d(index, x);
+}
+
+void gl4_3core_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
+}
+
+void gl4_3core_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glValidateProgramPipeline(pipeline);
+}
+
+void gl4_3core_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3dv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4dv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2dv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4dv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2dv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3dv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x3fv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x4fv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4x2fv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x4fv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3x2fv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2x3fv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4dv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3dv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2dv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix4fv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix3fv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniformMatrix2fv(program, location, count, transpose, value);
+}
+
+void gl4_3core_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4uiv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4ui(program, location, v0, v1, v2, v3);
+}
+
+void gl4_3core_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4dv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4d(program, location, v0, v1, v2, v3);
+}
+
+void gl4_3core_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4fv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4f(program, location, v0, v1, v2, v3);
+}
+
+void gl4_3core_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4iv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform4i(program, location, v0, v1, v2, v3);
+}
+
+void gl4_3core_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3uiv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3ui(program, location, v0, v1, v2);
+}
+
+void gl4_3core_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3dv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3d(program, location, v0, v1, v2);
+}
+
+void gl4_3core_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3fv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3f(program, location, v0, v1, v2);
+}
+
+void gl4_3core_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3iv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform3i(program, location, v0, v1, v2);
+}
+
+void gl4_3core_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2uiv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2ui(program, location, v0, v1);
+}
+
+void gl4_3core_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2dv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2d(program, location, v0, v1);
+}
+
+void gl4_3core_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2fv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2f(program, location, v0, v1);
+}
+
+void gl4_3core_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2iv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform2i(program, location, v0, v1);
+}
+
+void gl4_3core_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1uiv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1ui(program, location, v0);
+}
+
+void gl4_3core_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1dv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1d(program, location, v0);
+}
+
+void gl4_3core_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1fv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1f(program, location, v0);
+}
+
+void gl4_3core_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1iv(program, location, count, value);
+}
+
+void gl4_3core_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramUniform1i(program, location, v0);
+}
+
+void gl4_3core_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramPipelineiv(pipeline, pname, params);
+}
+
+GLboolean gl4_3core_glIsProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glIsProgramPipeline(pipeline);
+}
+
+void gl4_3core_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGenProgramPipelines(n, pipelines);
+}
+
+void gl4_3core_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDeleteProgramPipelines(n, pipelines);
+}
+
+void gl4_3core_glBindProgramPipeline(void *_glfuncs, GLuint pipeline)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindProgramPipeline(pipeline);
+}
+
+void gl4_3core_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glActiveShaderProgram(pipeline, program);
+}
+
+void gl4_3core_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glUseProgramStages(pipeline, stages, program);
+}
+
+void gl4_3core_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramParameteri(program, pname, value);
+}
+
+void gl4_3core_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glProgramBinary(program, binaryFormat, binary, length);
+}
+
+void gl4_3core_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
+}
+
+void gl4_3core_glClearDepthf(void *_glfuncs, GLfloat dd)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearDepthf(dd);
+}
+
+void gl4_3core_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDepthRangef(n, f);
+}
+
+void gl4_3core_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetShaderPrecisionFormat(shadertype, precisionType, range_, precision);
+}
+
+void gl4_3core_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glShaderBinary(count, shaders, binaryFormat, binary, length);
+}
+
+void gl4_3core_glReleaseShaderCompiler(void *_glfuncs)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glReleaseShaderCompiler();
+}
+
+void gl4_3core_glTexStorage3D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexStorage3D(target, levels, internalFormat, width, height, depth);
+}
+
+void gl4_3core_glTexStorage2D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexStorage2D(target, levels, internalFormat, width, height);
+}
+
+void gl4_3core_glTexStorage1D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexStorage1D(target, levels, internalFormat, width);
+}
+
+void gl4_3core_glMemoryBarrier(void *_glfuncs, GLbitfield barriers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMemoryBarrier(barriers);
+}
+
+void gl4_3core_glBindImageTexture(void *_glfuncs, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindImageTexture(unit, texture, level, layered, layer, access, format);
+}
+
+void gl4_3core_glGetActiveAtomicCounterBufferiv(void *_glfuncs, GLuint program, GLuint bufferIndex, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetActiveAtomicCounterBufferiv(program, bufferIndex, pname, params);
+}
+
+void gl4_3core_glGetInternalformativ(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetInternalformativ(target, internalFormat, pname, bufSize, params);
+}
+
+void gl4_3core_glDrawTransformFeedbackStreamInstanced(void *_glfuncs, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
+}
+
+void gl4_3core_glDrawTransformFeedbackInstanced(void *_glfuncs, GLenum mode, GLuint id, GLsizei instancecount)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawTransformFeedbackInstanced(mode, id, instancecount);
+}
+
+void gl4_3core_glDrawElementsInstancedBaseVertexBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseVertexBaseInstance(mode, count, gltype, indices, instancecount, basevertex, baseinstance);
+}
+
+void gl4_3core_glDrawElementsInstancedBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawElementsInstancedBaseInstance(mode, count, gltype, indices, instancecount, baseinstance);
+}
+
+void gl4_3core_glDrawArraysInstancedBaseInstance(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDrawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
+}
+
+void gl4_3core_glTexStorage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexStorage3DMultisample(target, samples, internalFormat, width, height, depth, fixedsamplelocations);
+}
+
+void gl4_3core_glTexStorage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexStorage2DMultisample(target, samples, internalFormat, width, height, fixedsamplelocations);
+}
+
+void gl4_3core_glTexBufferRange(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer, GLintptr offset, GLsizeiptr size)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTexBufferRange(target, internalFormat, buffer, offset, size);
+}
+
+void gl4_3core_glShaderStorageBlockBinding(void *_glfuncs, GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glShaderStorageBlockBinding(program, storageBlockIndex, storageBlockBinding);
+}
+
+GLint gl4_3core_glGetProgramResourceLocationIndex(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetProgramResourceLocationIndex(program, programInterface, name);
+}
+
+GLint gl4_3core_glGetProgramResourceLocation(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetProgramResourceLocation(program, programInterface, name);
+}
+
+void gl4_3core_glGetProgramResourceiv(void *_glfuncs, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramResourceiv(program, programInterface, index, propCount, props, bufSize, length, params);
+}
+
+void gl4_3core_glGetProgramResourceName(void *_glfuncs, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramResourceName(program, programInterface, index, bufSize, length, name);
+}
+
+GLuint gl4_3core_glGetProgramResourceIndex(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ return _qglfuncs->glGetProgramResourceIndex(program, programInterface, name);
+}
+
+void gl4_3core_glGetProgramInterfaceiv(void *_glfuncs, GLuint program, GLenum programInterface, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetProgramInterfaceiv(program, programInterface, pname, params);
+}
+
+void gl4_3core_glMultiDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect, GLsizei drawcount, GLsizei stride)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiDrawElementsIndirect(mode, gltype, indirect, drawcount, stride);
+}
+
+void gl4_3core_glMultiDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect, GLsizei drawcount, GLsizei stride)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glMultiDrawArraysIndirect(mode, indirect, drawcount, stride);
+}
+
+void gl4_3core_glInvalidateSubFramebuffer(void *_glfuncs, GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
+}
+
+void gl4_3core_glInvalidateFramebuffer(void *_glfuncs, GLenum target, GLsizei numAttachments, const GLenum* attachments)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glInvalidateFramebuffer(target, numAttachments, attachments);
+}
+
+void gl4_3core_glInvalidateBufferData(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glInvalidateBufferData(buffer);
+}
+
+void gl4_3core_glInvalidateBufferSubData(void *_glfuncs, GLuint buffer, GLintptr offset, GLsizeiptr length)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glInvalidateBufferSubData(buffer, offset, length);
+}
+
+void gl4_3core_glInvalidateTexImage(void *_glfuncs, GLuint texture, GLint level)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glInvalidateTexImage(texture, level);
+}
+
+void gl4_3core_glInvalidateTexSubImage(void *_glfuncs, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glInvalidateTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth);
+}
+
+void gl4_3core_glGetInternalformati64v(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint64* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetInternalformati64v(target, internalFormat, pname, bufSize, params);
+}
+
+void gl4_3core_glGetFramebufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glGetFramebufferParameteriv(target, pname, params);
+}
+
+void gl4_3core_glFramebufferParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glFramebufferParameteri(target, pname, param);
+}
+
+void gl4_3core_glVertexBindingDivisor(void *_glfuncs, GLuint bindingindex, GLuint divisor)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexBindingDivisor(bindingindex, divisor);
+}
+
+void gl4_3core_glVertexAttribBinding(void *_glfuncs, GLuint attribindex, GLuint bindingindex)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribBinding(attribindex, bindingindex);
+}
+
+void gl4_3core_glVertexAttribLFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLuint relativeoffset)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribLFormat(attribindex, size, gltype, relativeoffset);
+}
+
+void gl4_3core_glVertexAttribIFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLuint relativeoffset)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribIFormat(attribindex, size, gltype, relativeoffset);
+}
+
+void gl4_3core_glVertexAttribFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLboolean normalized, GLuint relativeoffset)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glVertexAttribFormat(attribindex, size, gltype, normalized, relativeoffset);
+}
+
+void gl4_3core_glBindVertexBuffer(void *_glfuncs, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glBindVertexBuffer(bindingindex, buffer, offset, stride);
+}
+
+void gl4_3core_glTextureView(void *_glfuncs, GLuint texture, GLenum target, GLuint origtexture, GLenum internalFormat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glTextureView(texture, target, origtexture, internalFormat, minlevel, numlevels, minlayer, numlayers);
+}
+
+void gl4_3core_glCopyImageSubData(void *_glfuncs, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
+}
+
+void gl4_3core_glDispatchComputeIndirect(void *_glfuncs, GLintptr indirect)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDispatchComputeIndirect(indirect);
+}
+
+void gl4_3core_glDispatchCompute(void *_glfuncs, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glDispatchCompute(num_groups_x, num_groups_y, num_groups_z);
+}
+
+void gl4_3core_glClearBufferSubData(void *_glfuncs, GLenum target, GLenum internalFormat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferSubData(target, internalFormat, offset, size, format, gltype, data);
+}
+
+void gl4_3core_glClearBufferData(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum format, GLenum gltype, const GLvoid* data)
+{
+ QOpenGLFunctions_4_3_Core* _qglfuncs = reinterpret_cast<QOpenGLFunctions_4_3_Core*>(_glfuncs);
+ _qglfuncs->glClearBufferData(target, internalFormat, format, gltype, data);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/funcs.h
new file mode 100644
index 000000000..b65f69bc4
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/funcs.h
@@ -0,0 +1,530 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl4_3core_funcs();
+
+void gl4_3core_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3core_glDepthRange(void *_glfuncs, GLdouble nearVal, GLdouble farVal);
+GLboolean gl4_3core_glIsEnabled(void *_glfuncs, GLenum cap);
+void gl4_3core_glGetTexLevelParameteriv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLint* params);
+void gl4_3core_glGetTexLevelParameterfv(void *_glfuncs, GLenum target, GLint level, GLenum pname, GLfloat* params);
+void gl4_3core_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3core_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gl4_3core_glGetTexImage(void *_glfuncs, GLenum target, GLint level, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_3core_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gl4_3core_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+GLenum gl4_3core_glGetError(void *_glfuncs);
+void gl4_3core_glGetDoublev(void *_glfuncs, GLenum pname, GLdouble* params);
+void gl4_3core_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+void gl4_3core_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gl4_3core_glReadBuffer(void *_glfuncs, GLenum mode);
+void gl4_3core_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gl4_3core_glPixelStoref(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_3core_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gl4_3core_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gl4_3core_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_3core_glLogicOp(void *_glfuncs, GLenum opcode);
+void gl4_3core_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gl4_3core_glFlush(void *_glfuncs);
+void gl4_3core_glFinish(void *_glfuncs);
+void gl4_3core_glEnable(void *_glfuncs, GLenum cap);
+void gl4_3core_glDisable(void *_glfuncs, GLenum cap);
+void gl4_3core_glDepthMask(void *_glfuncs, GLboolean flag);
+void gl4_3core_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gl4_3core_glStencilMask(void *_glfuncs, GLuint mask);
+void gl4_3core_glClearDepth(void *_glfuncs, GLdouble depth);
+void gl4_3core_glClearStencil(void *_glfuncs, GLint s);
+void gl4_3core_glClearColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_3core_glClear(void *_glfuncs, GLbitfield mask);
+void gl4_3core_glDrawBuffer(void *_glfuncs, GLenum mode);
+void gl4_3core_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3core_glTexImage1D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3core_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_3core_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_3core_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gl4_3core_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gl4_3core_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3core_glPolygonMode(void *_glfuncs, GLenum face, GLenum mode);
+void gl4_3core_glPointSize(void *_glfuncs, GLfloat size);
+void gl4_3core_glLineWidth(void *_glfuncs, GLfloat width);
+void gl4_3core_glHint(void *_glfuncs, GLenum target, GLenum mode);
+void gl4_3core_glFrontFace(void *_glfuncs, GLenum mode);
+void gl4_3core_glCullFace(void *_glfuncs, GLenum mode);
+void gl4_3core_glIndexubv(void *_glfuncs, const GLubyte* c);
+void gl4_3core_glIndexub(void *_glfuncs, GLubyte c);
+GLboolean gl4_3core_glIsTexture(void *_glfuncs, GLuint texture);
+void gl4_3core_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gl4_3core_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gl4_3core_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gl4_3core_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3core_glTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3core_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3core_glCopyTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void gl4_3core_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gl4_3core_glCopyTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void gl4_3core_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gl4_3core_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_3core_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gl4_3core_glCopyTexSubImage3D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3core_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);
+void gl4_3core_glTexImage3D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gl4_3core_glDrawRangeElements(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gl4_3core_glBlendEquation(void *_glfuncs, GLenum mode);
+void gl4_3core_glBlendColor(void *_glfuncs, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void gl4_3core_glGetCompressedTexImage(void *_glfuncs, GLenum target, GLint level, GLvoid* img);
+void gl4_3core_glCompressedTexSubImage1D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_3core_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+void gl4_3core_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);
+void gl4_3core_glCompressedTexImage1D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_3core_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_3core_glCompressedTexImage3D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void gl4_3core_glSampleCoverage(void *_glfuncs, GLfloat value, GLboolean invert);
+void gl4_3core_glActiveTexture(void *_glfuncs, GLenum texture);
+void gl4_3core_glPointParameteriv(void *_glfuncs, GLenum pname, const GLint* params);
+void gl4_3core_glPointParameteri(void *_glfuncs, GLenum pname, GLint param);
+void gl4_3core_glPointParameterfv(void *_glfuncs, GLenum pname, const GLfloat* params);
+void gl4_3core_glPointParameterf(void *_glfuncs, GLenum pname, GLfloat param);
+void gl4_3core_glMultiDrawArrays(void *_glfuncs, GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount);
+void gl4_3core_glBlendFuncSeparate(void *_glfuncs, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+void gl4_3core_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+GLboolean gl4_3core_glUnmapBuffer(void *_glfuncs, GLenum target);
+void gl4_3core_glGetBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, GLvoid* data);
+void gl4_3core_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+void gl4_3core_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+GLboolean gl4_3core_glIsBuffer(void *_glfuncs, GLuint buffer);
+void gl4_3core_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gl4_3core_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gl4_3core_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gl4_3core_glGetQueryObjectuiv(void *_glfuncs, GLuint id, GLenum pname, GLuint* params);
+void gl4_3core_glGetQueryObjectiv(void *_glfuncs, GLuint id, GLenum pname, GLint* params);
+void gl4_3core_glGetQueryiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3core_glEndQuery(void *_glfuncs, GLenum target);
+void gl4_3core_glBeginQuery(void *_glfuncs, GLenum target, GLuint id);
+GLboolean gl4_3core_glIsQuery(void *_glfuncs, GLuint id);
+void gl4_3core_glDeleteQueries(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_3core_glGenQueries(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_3core_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gl4_3core_glValidateProgram(void *_glfuncs, GLuint program);
+void gl4_3core_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_3core_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_3core_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_3core_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gl4_3core_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3core_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3core_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3core_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3core_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_3core_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_3core_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gl4_3core_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gl4_3core_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_3core_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_3core_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gl4_3core_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gl4_3core_glUseProgram(void *_glfuncs, GLuint program);
+void gl4_3core_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gl4_3core_glLinkProgram(void *_glfuncs, GLuint program);
+GLboolean gl4_3core_glIsShader(void *_glfuncs, GLuint shader);
+GLboolean gl4_3core_glIsProgram(void *_glfuncs, GLuint program);
+void gl4_3core_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_3core_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gl4_3core_glGetVertexAttribdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_3core_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+void gl4_3core_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+GLint gl4_3core_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_3core_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gl4_3core_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_3core_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gl4_3core_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_3core_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+GLint gl4_3core_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_3core_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxCount, GLsizei* count, GLuint* obj);
+void gl4_3core_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_3core_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gl4_3core_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_3core_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gl4_3core_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_3core_glDeleteShader(void *_glfuncs, GLuint shader);
+void gl4_3core_glDeleteProgram(void *_glfuncs, GLuint program);
+GLuint gl4_3core_glCreateShader(void *_glfuncs, GLenum gltype);
+GLuint gl4_3core_glCreateProgram(void *_glfuncs);
+void gl4_3core_glCompileShader(void *_glfuncs, GLuint shader);
+void gl4_3core_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gl4_3core_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gl4_3core_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gl4_3core_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gl4_3core_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+void gl4_3core_glDrawBuffers(void *_glfuncs, GLsizei n, const GLenum* bufs);
+void gl4_3core_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gl4_3core_glUniformMatrix4x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glUniformMatrix3x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glUniformMatrix4x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glUniformMatrix2x4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glUniformMatrix3x2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glUniformMatrix2x3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+GLboolean gl4_3core_glIsVertexArray(void *_glfuncs, GLuint array);
+void gl4_3core_glGenVertexArrays(void *_glfuncs, GLsizei n, GLuint* arrays);
+void gl4_3core_glDeleteVertexArrays(void *_glfuncs, GLsizei n, const GLuint* arrays);
+void gl4_3core_glBindVertexArray(void *_glfuncs, GLuint array);
+void gl4_3core_glFlushMappedBufferRange(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr length);
+void gl4_3core_glFramebufferTextureLayer(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+void gl4_3core_glRenderbufferStorageMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_3core_glBlitFramebuffer(void *_glfuncs, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void gl4_3core_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gl4_3core_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gl4_3core_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gl4_3core_glFramebufferTexture3D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+void gl4_3core_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gl4_3core_glFramebufferTexture1D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+GLenum gl4_3core_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gl4_3core_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gl4_3core_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gl4_3core_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+GLboolean gl4_3core_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+void gl4_3core_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3core_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_3core_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gl4_3core_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gl4_3core_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+GLboolean gl4_3core_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+void gl4_3core_glClearBufferfi(void *_glfuncs, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+void gl4_3core_glClearBufferfv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void gl4_3core_glClearBufferuiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLuint* value);
+void gl4_3core_glClearBufferiv(void *_glfuncs, GLenum buffer, GLint drawbuffer, const GLint* value);
+void gl4_3core_glGetTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, GLuint* params);
+void gl4_3core_glGetTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3core_glTexParameterIuiv(void *_glfuncs, GLenum target, GLenum pname, const GLuint* params);
+void gl4_3core_glTexParameterIiv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gl4_3core_glUniform4uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_3core_glUniform3uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_3core_glUniform2uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_3core_glUniform1uiv(void *_glfuncs, GLint location, GLsizei count, const GLuint* value);
+void gl4_3core_glUniform4ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_3core_glUniform3ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_3core_glUniform2ui(void *_glfuncs, GLint location, GLuint v0, GLuint v1);
+void gl4_3core_glUniform1ui(void *_glfuncs, GLint location, GLuint v0);
+GLint gl4_3core_glGetFragDataLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_3core_glBindFragDataLocation(void *_glfuncs, GLuint program, GLuint color, const GLchar* name);
+void gl4_3core_glGetUniformuiv(void *_glfuncs, GLuint program, GLint location, GLuint* params);
+void gl4_3core_glGetVertexAttribIuiv(void *_glfuncs, GLuint index, GLenum pname, GLuint* params);
+void gl4_3core_glGetVertexAttribIiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+void gl4_3core_glVertexAttribIPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3core_glEndConditionalRender(void *_glfuncs);
+void gl4_3core_glBeginConditionalRender(void *_glfuncs, GLuint id, GLenum mode);
+void gl4_3core_glClampColor(void *_glfuncs, GLenum target, GLenum clamp);
+void gl4_3core_glGetTransformFeedbackVarying(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* gltype, GLchar* name);
+void gl4_3core_glBindBufferBase(void *_glfuncs, GLenum target, GLuint index, GLuint buffer);
+void gl4_3core_glBindBufferRange(void *_glfuncs, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_3core_glEndTransformFeedback(void *_glfuncs);
+void gl4_3core_glBeginTransformFeedback(void *_glfuncs, GLenum primitiveMode);
+GLboolean gl4_3core_glIsEnabledi(void *_glfuncs, GLenum target, GLuint index);
+void gl4_3core_glDisablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_3core_glEnablei(void *_glfuncs, GLenum target, GLuint index);
+void gl4_3core_glGetIntegeri_v(void *_glfuncs, GLenum target, GLuint index, GLint* data);
+void gl4_3core_glGetBooleani_v(void *_glfuncs, GLenum target, GLuint index, GLboolean* data);
+void gl4_3core_glColorMaski(void *_glfuncs, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+void gl4_3core_glCopyBufferSubData(void *_glfuncs, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void gl4_3core_glUniformBlockBinding(void *_glfuncs, GLuint program, GLuint v0, GLuint v1);
+void gl4_3core_glGetActiveUniformBlockName(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void gl4_3core_glGetActiveUniformBlockiv(void *_glfuncs, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+GLuint gl4_3core_glGetUniformBlockIndex(void *_glfuncs, GLuint program, const GLchar* uniformBlockName);
+void gl4_3core_glGetActiveUniformName(void *_glfuncs, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName);
+void gl4_3core_glGetActiveUniformsiv(void *_glfuncs, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+void gl4_3core_glPrimitiveRestartIndex(void *_glfuncs, GLuint index);
+void gl4_3core_glTexBuffer(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer);
+void gl4_3core_glDrawElementsInstanced(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount);
+void gl4_3core_glDrawArraysInstanced(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+void gl4_3core_glSampleMaski(void *_glfuncs, GLuint index, GLbitfield mask);
+void gl4_3core_glGetMultisamplefv(void *_glfuncs, GLenum pname, GLuint index, GLfloat* val);
+void gl4_3core_glTexImage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_3core_glTexImage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_3core_glGetSynciv(void *_glfuncs, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void gl4_3core_glGetInteger64v(void *_glfuncs, GLenum pname, GLint64* params);
+void gl4_3core_glWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+GLenum gl4_3core_glClientWaitSync(void *_glfuncs, GLsync sync, GLbitfield flags, GLuint64 timeout);
+void gl4_3core_glDeleteSync(void *_glfuncs, GLsync sync);
+GLboolean gl4_3core_glIsSync(void *_glfuncs, GLsync sync);
+GLsync gl4_3core_glFenceSync(void *_glfuncs, GLenum condition, GLbitfield flags);
+void gl4_3core_glProvokingVertex(void *_glfuncs, GLenum mode);
+void gl4_3core_glDrawElementsInstancedBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex);
+void gl4_3core_glDrawRangeElementsBaseVertex(void *_glfuncs, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_3core_glDrawElementsBaseVertex(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLint basevertex);
+void gl4_3core_glFramebufferTexture(void *_glfuncs, GLenum target, GLenum attachment, GLuint texture, GLint level);
+void gl4_3core_glGetBufferParameteri64v(void *_glfuncs, GLenum target, GLenum pname, GLint64* params);
+void gl4_3core_glGetInteger64i_v(void *_glfuncs, GLenum target, GLuint index, GLint64* data);
+void gl4_3core_glVertexAttribP4uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_3core_glVertexAttribP4ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_3core_glVertexAttribP3uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_3core_glVertexAttribP3ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_3core_glVertexAttribP2uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_3core_glVertexAttribP2ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_3core_glVertexAttribP1uiv(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, const GLuint* value);
+void gl4_3core_glVertexAttribP1ui(void *_glfuncs, GLuint index, GLenum gltype, GLboolean normalized, GLuint value);
+void gl4_3core_glSecondaryColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_3core_glSecondaryColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_3core_glColorP4uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_3core_glColorP4ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_3core_glColorP3uiv(void *_glfuncs, GLenum gltype, const GLuint* color);
+void gl4_3core_glColorP3ui(void *_glfuncs, GLenum gltype, GLuint color);
+void gl4_3core_glNormalP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3core_glNormalP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3core_glMultiTexCoordP4uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_3core_glMultiTexCoordP4ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_3core_glMultiTexCoordP3uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_3core_glMultiTexCoordP3ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_3core_glMultiTexCoordP2uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_3core_glMultiTexCoordP2ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_3core_glMultiTexCoordP1uiv(void *_glfuncs, GLenum texture, GLenum gltype, const GLuint* coords);
+void gl4_3core_glMultiTexCoordP1ui(void *_glfuncs, GLenum texture, GLenum gltype, GLuint coords);
+void gl4_3core_glTexCoordP4uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3core_glTexCoordP4ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3core_glTexCoordP3uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3core_glTexCoordP3ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3core_glTexCoordP2uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3core_glTexCoordP2ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3core_glTexCoordP1uiv(void *_glfuncs, GLenum gltype, const GLuint* coords);
+void gl4_3core_glTexCoordP1ui(void *_glfuncs, GLenum gltype, GLuint coords);
+void gl4_3core_glVertexP4uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_3core_glVertexP4ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_3core_glVertexP3uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_3core_glVertexP3ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_3core_glVertexP2uiv(void *_glfuncs, GLenum gltype, const GLuint* value);
+void gl4_3core_glVertexP2ui(void *_glfuncs, GLenum gltype, GLuint value);
+void gl4_3core_glGetQueryObjectui64v(void *_glfuncs, GLuint id, GLenum pname, GLuint64* params);
+void gl4_3core_glGetQueryObjecti64v(void *_glfuncs, GLuint id, GLenum pname, GLint64* params);
+void gl4_3core_glQueryCounter(void *_glfuncs, GLuint id, GLenum target);
+void gl4_3core_glGetSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, GLuint* params);
+void gl4_3core_glGetSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat* params);
+void gl4_3core_glGetSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_3core_glGetSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, GLint* params);
+void gl4_3core_glSamplerParameterIuiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLuint* param);
+void gl4_3core_glSamplerParameterIiv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_3core_glSamplerParameterfv(void *_glfuncs, GLuint sampler, GLenum pname, const GLfloat* param);
+void gl4_3core_glSamplerParameterf(void *_glfuncs, GLuint sampler, GLenum pname, GLfloat param);
+void gl4_3core_glSamplerParameteriv(void *_glfuncs, GLuint sampler, GLenum pname, const GLint* param);
+void gl4_3core_glSamplerParameteri(void *_glfuncs, GLuint sampler, GLenum pname, GLint param);
+void gl4_3core_glBindSampler(void *_glfuncs, GLuint unit, GLuint sampler);
+GLboolean gl4_3core_glIsSampler(void *_glfuncs, GLuint sampler);
+void gl4_3core_glDeleteSamplers(void *_glfuncs, GLsizei count, const GLuint* samplers);
+void gl4_3core_glGenSamplers(void *_glfuncs, GLsizei count, GLuint* samplers);
+GLint gl4_3core_glGetFragDataIndex(void *_glfuncs, GLuint program, const GLchar* name);
+void gl4_3core_glBindFragDataLocationIndexed(void *_glfuncs, GLuint program, GLuint colorNumber, GLuint index, const GLchar* name);
+void gl4_3core_glVertexAttribDivisor(void *_glfuncs, GLuint index, GLuint divisor);
+void gl4_3core_glGetQueryIndexediv(void *_glfuncs, GLenum target, GLuint index, GLenum pname, GLint* params);
+void gl4_3core_glEndQueryIndexed(void *_glfuncs, GLenum target, GLuint index);
+void gl4_3core_glBeginQueryIndexed(void *_glfuncs, GLenum target, GLuint index, GLuint id);
+void gl4_3core_glDrawTransformFeedbackStream(void *_glfuncs, GLenum mode, GLuint id, GLuint stream);
+void gl4_3core_glDrawTransformFeedback(void *_glfuncs, GLenum mode, GLuint id);
+void gl4_3core_glResumeTransformFeedback(void *_glfuncs);
+void gl4_3core_glPauseTransformFeedback(void *_glfuncs);
+GLboolean gl4_3core_glIsTransformFeedback(void *_glfuncs, GLuint id);
+void gl4_3core_glGenTransformFeedbacks(void *_glfuncs, GLsizei n, GLuint* ids);
+void gl4_3core_glDeleteTransformFeedbacks(void *_glfuncs, GLsizei n, const GLuint* ids);
+void gl4_3core_glBindTransformFeedback(void *_glfuncs, GLenum target, GLuint id);
+void gl4_3core_glPatchParameterfv(void *_glfuncs, GLenum pname, const GLfloat* values);
+void gl4_3core_glPatchParameteri(void *_glfuncs, GLenum pname, GLint value);
+void gl4_3core_glGetProgramStageiv(void *_glfuncs, GLuint program, GLenum shadertype, GLenum pname, GLint* values);
+void gl4_3core_glGetUniformSubroutineuiv(void *_glfuncs, GLenum shadertype, GLint location, GLuint* params);
+void gl4_3core_glUniformSubroutinesuiv(void *_glfuncs, GLenum shadertype, GLsizei count, const GLuint* value);
+void gl4_3core_glGetActiveSubroutineName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_3core_glGetActiveSubroutineUniformName(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+void gl4_3core_glGetActiveSubroutineUniformiv(void *_glfuncs, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values);
+GLuint gl4_3core_glGetSubroutineIndex(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+GLint gl4_3core_glGetSubroutineUniformLocation(void *_glfuncs, GLuint program, GLenum shadertype, const GLchar* name);
+void gl4_3core_glGetUniformdv(void *_glfuncs, GLuint program, GLint location, GLdouble* params);
+void gl4_3core_glUniformMatrix4x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glUniformMatrix4x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glUniformMatrix3x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glUniformMatrix3x2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glUniformMatrix2x4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glUniformMatrix2x3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glUniformMatrix4dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glUniformMatrix3dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glUniformMatrix2dv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glUniform4dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3core_glUniform3dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3core_glUniform2dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3core_glUniform1dv(void *_glfuncs, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3core_glUniform4d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_3core_glUniform3d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_3core_glUniform2d(void *_glfuncs, GLint location, GLdouble v0, GLdouble v1);
+void gl4_3core_glUniform1d(void *_glfuncs, GLint location, GLdouble v0);
+void gl4_3core_glDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect);
+void gl4_3core_glDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect);
+void gl4_3core_glBlendFuncSeparatei(void *_glfuncs, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+void gl4_3core_glBlendFunci(void *_glfuncs, GLuint buf, GLenum src, GLenum dst);
+void gl4_3core_glBlendEquationSeparatei(void *_glfuncs, GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+void gl4_3core_glBlendEquationi(void *_glfuncs, GLuint buf, GLenum mode);
+void gl4_3core_glMinSampleShading(void *_glfuncs, GLfloat value);
+void gl4_3core_glGetDoublei_v(void *_glfuncs, GLenum target, GLuint index, GLdouble* data);
+void gl4_3core_glGetFloati_v(void *_glfuncs, GLenum target, GLuint index, GLfloat* data);
+void gl4_3core_glDepthRangeIndexed(void *_glfuncs, GLuint index, GLdouble n, GLdouble f);
+void gl4_3core_glDepthRangeArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLdouble* v);
+void gl4_3core_glScissorIndexedv(void *_glfuncs, GLuint index, const GLint* v);
+void gl4_3core_glScissorIndexed(void *_glfuncs, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+void gl4_3core_glScissorArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLint* v);
+void gl4_3core_glViewportIndexedfv(void *_glfuncs, GLuint index, const GLfloat* v);
+void gl4_3core_glViewportIndexedf(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+void gl4_3core_glViewportArrayv(void *_glfuncs, GLuint first, GLsizei count, const GLfloat* v);
+void gl4_3core_glGetVertexAttribLdv(void *_glfuncs, GLuint index, GLenum pname, GLdouble* params);
+void gl4_3core_glVertexAttribLPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLsizei stride, const GLvoid* pointer);
+void gl4_3core_glVertexAttribL4dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3core_glVertexAttribL3dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3core_glVertexAttribL2dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3core_glVertexAttribL1dv(void *_glfuncs, GLuint index, const GLdouble* v);
+void gl4_3core_glVertexAttribL4d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void gl4_3core_glVertexAttribL3d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y, GLdouble z);
+void gl4_3core_glVertexAttribL2d(void *_glfuncs, GLuint index, GLdouble x, GLdouble y);
+void gl4_3core_glVertexAttribL1d(void *_glfuncs, GLuint index, GLdouble x);
+void gl4_3core_glGetProgramPipelineInfoLog(void *_glfuncs, GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gl4_3core_glValidateProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_3core_glProgramUniformMatrix4x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glProgramUniformMatrix3x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glProgramUniformMatrix4x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glProgramUniformMatrix2x4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glProgramUniformMatrix3x2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glProgramUniformMatrix2x3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glProgramUniformMatrix4x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glProgramUniformMatrix3x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glProgramUniformMatrix4x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glProgramUniformMatrix2x4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glProgramUniformMatrix3x2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glProgramUniformMatrix2x3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glProgramUniformMatrix4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glProgramUniformMatrix3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glProgramUniformMatrix2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value);
+void gl4_3core_glProgramUniformMatrix4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glProgramUniformMatrix3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glProgramUniformMatrix2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gl4_3core_glProgramUniform4uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_3core_glProgramUniform4ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void gl4_3core_glProgramUniform4dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3core_glProgramUniform4d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+void gl4_3core_glProgramUniform4fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3core_glProgramUniform4f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gl4_3core_glProgramUniform4iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_3core_glProgramUniform4i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gl4_3core_glProgramUniform3uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_3core_glProgramUniform3ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+void gl4_3core_glProgramUniform3dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3core_glProgramUniform3d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+void gl4_3core_glProgramUniform3fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3core_glProgramUniform3f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gl4_3core_glProgramUniform3iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_3core_glProgramUniform3i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+void gl4_3core_glProgramUniform2uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_3core_glProgramUniform2ui(void *_glfuncs, GLuint program, GLint location, GLuint v0, GLuint v1);
+void gl4_3core_glProgramUniform2dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3core_glProgramUniform2d(void *_glfuncs, GLuint program, GLint location, GLdouble v0, GLdouble v1);
+void gl4_3core_glProgramUniform2fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3core_glProgramUniform2f(void *_glfuncs, GLuint program, GLint location, GLfloat v0, GLfloat v1);
+void gl4_3core_glProgramUniform2iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_3core_glProgramUniform2i(void *_glfuncs, GLuint program, GLint location, GLint v0, GLint v1);
+void gl4_3core_glProgramUniform1uiv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLuint* value);
+void gl4_3core_glProgramUniform1ui(void *_glfuncs, GLuint program, GLint location, GLuint v0);
+void gl4_3core_glProgramUniform1dv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLdouble* value);
+void gl4_3core_glProgramUniform1d(void *_glfuncs, GLuint program, GLint location, GLdouble v0);
+void gl4_3core_glProgramUniform1fv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLfloat* value);
+void gl4_3core_glProgramUniform1f(void *_glfuncs, GLuint program, GLint location, GLfloat v0);
+void gl4_3core_glProgramUniform1iv(void *_glfuncs, GLuint program, GLint location, GLsizei count, const GLint* value);
+void gl4_3core_glProgramUniform1i(void *_glfuncs, GLuint program, GLint location, GLint v0);
+void gl4_3core_glGetProgramPipelineiv(void *_glfuncs, GLuint pipeline, GLenum pname, GLint* params);
+GLboolean gl4_3core_glIsProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_3core_glGenProgramPipelines(void *_glfuncs, GLsizei n, GLuint* pipelines);
+void gl4_3core_glDeleteProgramPipelines(void *_glfuncs, GLsizei n, const GLuint* pipelines);
+void gl4_3core_glBindProgramPipeline(void *_glfuncs, GLuint pipeline);
+void gl4_3core_glActiveShaderProgram(void *_glfuncs, GLuint pipeline, GLuint program);
+void gl4_3core_glUseProgramStages(void *_glfuncs, GLuint pipeline, GLbitfield stages, GLuint program);
+void gl4_3core_glProgramParameteri(void *_glfuncs, GLuint program, GLenum pname, GLint value);
+void gl4_3core_glProgramBinary(void *_glfuncs, GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_3core_glGetProgramBinary(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
+void gl4_3core_glClearDepthf(void *_glfuncs, GLfloat dd);
+void gl4_3core_glDepthRangef(void *_glfuncs, GLfloat n, GLfloat f);
+void gl4_3core_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision);
+void gl4_3core_glShaderBinary(void *_glfuncs, GLsizei count, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void gl4_3core_glReleaseShaderCompiler(void *_glfuncs);
+void gl4_3core_glTexStorage3D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth);
+void gl4_3core_glTexStorage2D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height);
+void gl4_3core_glTexStorage1D(void *_glfuncs, GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width);
+void gl4_3core_glMemoryBarrier(void *_glfuncs, GLbitfield barriers);
+void gl4_3core_glBindImageTexture(void *_glfuncs, GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+void gl4_3core_glGetActiveAtomicCounterBufferiv(void *_glfuncs, GLuint program, GLuint bufferIndex, GLenum pname, GLint* params);
+void gl4_3core_glGetInternalformativ(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint* params);
+void gl4_3core_glDrawTransformFeedbackStreamInstanced(void *_glfuncs, GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+void gl4_3core_glDrawTransformFeedbackInstanced(void *_glfuncs, GLenum mode, GLuint id, GLsizei instancecount);
+void gl4_3core_glDrawElementsInstancedBaseVertexBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+void gl4_3core_glDrawElementsInstancedBaseInstance(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices, GLsizei instancecount, GLuint baseinstance);
+void gl4_3core_glDrawArraysInstancedBaseInstance(void *_glfuncs, GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+void gl4_3core_glTexStorage3DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+void gl4_3core_glTexStorage2DMultisample(void *_glfuncs, GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+void gl4_3core_glTexBufferRange(void *_glfuncs, GLenum target, GLenum internalFormat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void gl4_3core_glShaderStorageBlockBinding(void *_glfuncs, GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
+GLint gl4_3core_glGetProgramResourceLocationIndex(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name);
+GLint gl4_3core_glGetProgramResourceLocation(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name);
+void gl4_3core_glGetProgramResourceiv(void *_glfuncs, GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum* props, GLsizei bufSize, GLsizei* length, GLint* params);
+void gl4_3core_glGetProgramResourceName(void *_glfuncs, GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei* length, GLchar* name);
+GLuint gl4_3core_glGetProgramResourceIndex(void *_glfuncs, GLuint program, GLenum programInterface, const GLchar* name);
+void gl4_3core_glGetProgramInterfaceiv(void *_glfuncs, GLuint program, GLenum programInterface, GLenum pname, GLint* params);
+void gl4_3core_glMultiDrawElementsIndirect(void *_glfuncs, GLenum mode, GLenum gltype, const GLvoid* indirect, GLsizei drawcount, GLsizei stride);
+void gl4_3core_glMultiDrawArraysIndirect(void *_glfuncs, GLenum mode, const GLvoid* indirect, GLsizei drawcount, GLsizei stride);
+void gl4_3core_glInvalidateSubFramebuffer(void *_glfuncs, GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+void gl4_3core_glInvalidateFramebuffer(void *_glfuncs, GLenum target, GLsizei numAttachments, const GLenum* attachments);
+void gl4_3core_glInvalidateBufferData(void *_glfuncs, GLuint buffer);
+void gl4_3core_glInvalidateBufferSubData(void *_glfuncs, GLuint buffer, GLintptr offset, GLsizeiptr length);
+void gl4_3core_glInvalidateTexImage(void *_glfuncs, GLuint texture, GLint level);
+void gl4_3core_glInvalidateTexSubImage(void *_glfuncs, GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
+void gl4_3core_glGetInternalformati64v(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum pname, GLsizei bufSize, GLint64* params);
+void gl4_3core_glGetFramebufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gl4_3core_glFramebufferParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gl4_3core_glVertexBindingDivisor(void *_glfuncs, GLuint bindingindex, GLuint divisor);
+void gl4_3core_glVertexAttribBinding(void *_glfuncs, GLuint attribindex, GLuint bindingindex);
+void gl4_3core_glVertexAttribLFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLuint relativeoffset);
+void gl4_3core_glVertexAttribIFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLuint relativeoffset);
+void gl4_3core_glVertexAttribFormat(void *_glfuncs, GLuint attribindex, GLint size, GLenum gltype, GLboolean normalized, GLuint relativeoffset);
+void gl4_3core_glBindVertexBuffer(void *_glfuncs, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+void gl4_3core_glTextureView(void *_glfuncs, GLuint texture, GLenum target, GLuint origtexture, GLenum internalFormat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+void gl4_3core_glCopyImageSubData(void *_glfuncs, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+void gl4_3core_glDispatchComputeIndirect(void *_glfuncs, GLintptr indirect);
+void gl4_3core_glDispatchCompute(void *_glfuncs, GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
+void gl4_3core_glClearBufferSubData(void *_glfuncs, GLenum target, GLenum internalFormat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum gltype, const GLvoid* data);
+void gl4_3core_glClearBufferData(void *_glfuncs, GLenum target, GLenum internalFormat, GLenum format, GLenum gltype, const GLvoid* data);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/gl.go
new file mode 100644
index 000000000..76df4604f
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/4.3core/gl.go
@@ -0,0 +1,7052 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version 4.3 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl4_3core_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version 4.3 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version 4.3 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ N2_BYTES = 0x1407
+ N3_BYTES = 0x1408
+ N4_BYTES = 0x1409
+ DOUBLE = 0x140A
+ HALF_FLOAT = 0x140B
+ FIXED = 0x140C
+
+ ACCUM = 0x0100
+ LOAD = 0x0101
+ RETURN = 0x0102
+ MULT = 0x0103
+ ADD = 0x0104
+
+ ACCUM_BUFFER_BIT = 0x00000200
+ ALL_ATTRIB_BITS = 0xFFFFFFFF
+ COLOR_BUFFER_BIT = 0x00004000
+ CURRENT_BIT = 0x00000001
+ DEPTH_BUFFER_BIT = 0x00000100
+ ENABLE_BIT = 0x00002000
+ EVAL_BIT = 0x00010000
+ FOG_BIT = 0x00000080
+ HINT_BIT = 0x00008000
+ LIGHTING_BIT = 0x00000040
+ LINE_BIT = 0x00000004
+ LIST_BIT = 0x00020000
+ MULTISAMPLE_BIT = 0x20000000
+ PIXEL_MODE_BIT = 0x00000020
+ POINT_BIT = 0x00000002
+ POLYGON_BIT = 0x00000008
+ POLYGON_STIPPLE_BIT = 0x00000010
+ SCISSOR_BIT = 0x00080000
+ STENCIL_BUFFER_BIT = 0x00000400
+ TEXTURE_BIT = 0x00040000
+ TRANSFORM_BIT = 0x00001000
+ VIEWPORT_BIT = 0x00000800
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ LOGIC_OP = 0x0BF1
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ CLIENT_ALL_ATTRIB_BITS = 0xFFFFFFFF
+ CLIENT_PIXEL_STORE_BIT = 0x00000001
+ CLIENT_VERTEX_ARRAY_BIT = 0x00000002
+
+ CLIP_DISTANCE0 = 0x3000
+ CLIP_DISTANCE1 = 0x3001
+ CLIP_DISTANCE2 = 0x3002
+ CLIP_DISTANCE3 = 0x3003
+ CLIP_DISTANCE4 = 0x3004
+ CLIP_DISTANCE5 = 0x3005
+ CLIP_DISTANCE6 = 0x3006
+ CLIP_DISTANCE7 = 0x3007
+ CLIP_PLANE0 = 0x3000
+ CLIP_PLANE1 = 0x3001
+ CLIP_PLANE2 = 0x3002
+ CLIP_PLANE3 = 0x3003
+ CLIP_PLANE4 = 0x3004
+ CLIP_PLANE5 = 0x3005
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ AMBIENT = 0x1200
+ AMBIENT_AND_DIFFUSE = 0x1602
+ DIFFUSE = 0x1201
+ EMISSION = 0x1600
+ SPECULAR = 0x1202
+
+ CONTEXT_FLAG_DEBUG_BIT = 0x00000002
+ CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT = 0x00000001
+
+ CONTEXT_COMPATIBILITY_PROFILE_BIT = 0x00000002
+ CONTEXT_CORE_PROFILE_BIT = 0x00000001
+
+ AUX0 = 0x0409
+ AUX1 = 0x040A
+ AUX2 = 0x040B
+ AUX3 = 0x040C
+ BACK_LEFT = 0x0402
+ BACK_RIGHT = 0x0403
+ FRONT_LEFT = 0x0400
+ FRONT_RIGHT = 0x0401
+ LEFT = 0x0406
+ RIGHT = 0x0407
+
+ ALPHA_TEST = 0x0BC0
+ AUTO_NORMAL = 0x0D80
+ BLEND = 0x0BE2
+ COLOR_ARRAY = 0x8076
+ COLOR_LOGIC_OP = 0x0BF2
+ COLOR_MATERIAL = 0x0B57
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ EDGE_FLAG_ARRAY = 0x8079
+ FOG = 0x0B60
+ INDEX_ARRAY = 0x8077
+ INDEX_LOGIC_OP = 0x0BF1
+ LIGHT0 = 0x4000
+ LIGHT1 = 0x4001
+ LIGHT2 = 0x4002
+ LIGHT3 = 0x4003
+ LIGHT4 = 0x4004
+ LIGHT5 = 0x4005
+ LIGHT6 = 0x4006
+ LIGHT7 = 0x4007
+ LIGHTING = 0x0B50
+ LINE_SMOOTH = 0x0B20
+ LINE_STIPPLE = 0x0B24
+ MAP1_COLOR_4 = 0x0D90
+ MAP1_INDEX = 0x0D91
+ MAP1_NORMAL = 0x0D92
+ MAP1_TEXTURE_COORD_1 = 0x0D93
+ MAP1_TEXTURE_COORD_2 = 0x0D94
+ MAP1_TEXTURE_COORD_3 = 0x0D95
+ MAP1_TEXTURE_COORD_4 = 0x0D96
+ MAP1_VERTEX_3 = 0x0D97
+ MAP1_VERTEX_4 = 0x0D98
+ MAP2_COLOR_4 = 0x0DB0
+ MAP2_INDEX = 0x0DB1
+ MAP2_NORMAL = 0x0DB2
+ MAP2_TEXTURE_COORD_1 = 0x0DB3
+ MAP2_TEXTURE_COORD_2 = 0x0DB4
+ MAP2_TEXTURE_COORD_3 = 0x0DB5
+ MAP2_TEXTURE_COORD_4 = 0x0DB6
+ MAP2_VERTEX_3 = 0x0DB7
+ MAP2_VERTEX_4 = 0x0DB8
+ NORMALIZE = 0x0BA1
+ NORMAL_ARRAY = 0x8075
+ POINT_SMOOTH = 0x0B10
+ POLYGON_OFFSET_FILL = 0x8037
+ POLYGON_OFFSET_LINE = 0x2A02
+ POLYGON_OFFSET_POINT = 0x2A01
+ POLYGON_SMOOTH = 0x0B41
+ POLYGON_STIPPLE = 0x0B42
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_1D = 0x0DE0
+ TEXTURE_2D = 0x0DE1
+ TEXTURE_COORD_ARRAY = 0x8078
+ TEXTURE_GEN_Q = 0x0C63
+ TEXTURE_GEN_R = 0x0C62
+ TEXTURE_GEN_S = 0x0C60
+ TEXTURE_GEN_T = 0x0C61
+ VERTEX_ARRAY = 0x8074
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+ STACK_OVERFLOW = 0x0503
+ STACK_UNDERFLOW = 0x0504
+
+ N2D = 0x0600
+ N3D = 0x0601
+ N3D_COLOR = 0x0602
+ N3D_COLOR_TEXTURE = 0x0603
+ N4D_COLOR_TEXTURE = 0x0604
+
+ BITMAP_TOKEN = 0x0704
+ COPY_PIXEL_TOKEN = 0x0706
+ DRAW_PIXEL_TOKEN = 0x0705
+ LINE_RESET_TOKEN = 0x0707
+ LINE_TOKEN = 0x0702
+ PASS_THROUGH_TOKEN = 0x0700
+ POINT_TOKEN = 0x0701
+ POLYGON_TOKEN = 0x0703
+
+ EXP = 0x0800
+ EXP2 = 0x0801
+ LINEAR = 0x2601
+
+ FOG_COLOR = 0x0B66
+ FOG_DENSITY = 0x0B62
+ FOG_END = 0x0B64
+ FOG_INDEX = 0x0B61
+ FOG_MODE = 0x0B65
+ FOG_START = 0x0B63
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ COEFF = 0x0A00
+ DOMAIN = 0x0A02
+ ORDER = 0x0A01
+
+ PIXEL_MAP_A_TO_A = 0x0C79
+ PIXEL_MAP_B_TO_B = 0x0C78
+ PIXEL_MAP_G_TO_G = 0x0C77
+ PIXEL_MAP_I_TO_A = 0x0C75
+ PIXEL_MAP_I_TO_B = 0x0C74
+ PIXEL_MAP_I_TO_G = 0x0C73
+ PIXEL_MAP_I_TO_I = 0x0C70
+ PIXEL_MAP_I_TO_R = 0x0C72
+ PIXEL_MAP_R_TO_R = 0x0C76
+ PIXEL_MAP_S_TO_S = 0x0C71
+
+ ACCUM_ALPHA_BITS = 0x0D5B
+ ACCUM_BLUE_BITS = 0x0D5A
+ ACCUM_CLEAR_VALUE = 0x0B80
+ ACCUM_GREEN_BITS = 0x0D59
+ ACCUM_RED_BITS = 0x0D58
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BIAS = 0x0D1D
+ ALPHA_BITS = 0x0D55
+ ALPHA_SCALE = 0x0D1C
+ ALPHA_TEST_FUNC = 0x0BC1
+ ALPHA_TEST_REF = 0x0BC2
+ ATTRIB_STACK_DEPTH = 0x0BB0
+ AUX_BUFFERS = 0x0C00
+ BLEND_DST = 0x0BE0
+ BLEND_SRC = 0x0BE1
+ BLUE_BIAS = 0x0D1B
+ BLUE_BITS = 0x0D54
+ BLUE_SCALE = 0x0D1A
+ CLIENT_ATTRIB_STACK_DEPTH = 0x0BB1
+ COLOR_ARRAY_SIZE = 0x8081
+ COLOR_ARRAY_STRIDE = 0x8083
+ COLOR_ARRAY_TYPE = 0x8082
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_MATERIAL_FACE = 0x0B55
+ COLOR_MATERIAL_PARAMETER = 0x0B56
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ CURRENT_COLOR = 0x0B00
+ CURRENT_INDEX = 0x0B01
+ CURRENT_NORMAL = 0x0B02
+ CURRENT_RASTER_COLOR = 0x0B04
+ CURRENT_RASTER_DISTANCE = 0x0B09
+ CURRENT_RASTER_INDEX = 0x0B05
+ CURRENT_RASTER_POSITION = 0x0B07
+ CURRENT_RASTER_POSITION_VALID = 0x0B08
+ CURRENT_RASTER_TEXTURE_COORDS = 0x0B06
+ CURRENT_TEXTURE_COORDS = 0x0B03
+ DEPTH_BIAS = 0x0D1F
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_SCALE = 0x0D1E
+ DEPTH_WRITEMASK = 0x0B72
+ DOUBLEBUFFER = 0x0C32
+ DRAW_BUFFER = 0x0C01
+ EDGE_FLAG = 0x0B43
+ EDGE_FLAG_ARRAY_STRIDE = 0x808C
+ FEEDBACK_BUFFER_SIZE = 0x0DF1
+ FEEDBACK_BUFFER_TYPE = 0x0DF2
+ FOG_HINT = 0x0C54
+ FRONT_FACE = 0x0B46
+ GREEN_BIAS = 0x0D19
+ GREEN_BITS = 0x0D53
+ GREEN_SCALE = 0x0D18
+ INDEX_ARRAY_STRIDE = 0x8086
+ INDEX_ARRAY_TYPE = 0x8085
+ INDEX_BITS = 0x0D51
+ INDEX_CLEAR_VALUE = 0x0C20
+ INDEX_MODE = 0x0C30
+ INDEX_OFFSET = 0x0D13
+ INDEX_SHIFT = 0x0D12
+ INDEX_WRITEMASK = 0x0C21
+ LIGHT_MODEL_AMBIENT = 0x0B53
+ LIGHT_MODEL_COLOR_CONTROL = 0x81F8
+ LIGHT_MODEL_LOCAL_VIEWER = 0x0B51
+ LIGHT_MODEL_TWO_SIDE = 0x0B52
+ LINE_SMOOTH_HINT = 0x0C52
+ LINE_STIPPLE_PATTERN = 0x0B25
+ LINE_STIPPLE_REPEAT = 0x0B26
+ LINE_WIDTH = 0x0B21
+ LINE_WIDTH_GRANULARITY = 0x0B23
+ LINE_WIDTH_RANGE = 0x0B22
+ LIST_BASE = 0x0B32
+ LIST_INDEX = 0x0B33
+ LIST_MODE = 0x0B30
+ LOGIC_OP_MODE = 0x0BF0
+ MAP1_GRID_DOMAIN = 0x0DD0
+ MAP1_GRID_SEGMENTS = 0x0DD1
+ MAP2_GRID_DOMAIN = 0x0DD2
+ MAP2_GRID_SEGMENTS = 0x0DD3
+ MAP_COLOR = 0x0D10
+ MAP_STENCIL = 0x0D11
+ MATRIX_MODE = 0x0BA0
+ MAX_ATTRIB_STACK_DEPTH = 0x0D35
+ MAX_CLIENT_ATTRIB_STACK_DEPTH = 0x0D3B
+ MAX_CLIP_DISTANCES = 0x0D32
+ MAX_CLIP_PLANES = 0x0D32
+ MAX_EVAL_ORDER = 0x0D30
+ MAX_LIGHTS = 0x0D31
+ MAX_LIST_NESTING = 0x0B31
+ MAX_MODELVIEW_STACK_DEPTH = 0x0D36
+ MAX_NAME_STACK_DEPTH = 0x0D37
+ MAX_PIXEL_MAP_TABLE = 0x0D34
+ MAX_PROJECTION_STACK_DEPTH = 0x0D38
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_TEXTURE_STACK_DEPTH = 0x0D39
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ MODELVIEW_MATRIX = 0x0BA6
+ MODELVIEW_STACK_DEPTH = 0x0BA3
+ NAME_STACK_DEPTH = 0x0D70
+ NORMAL_ARRAY_STRIDE = 0x807F
+ NORMAL_ARRAY_TYPE = 0x807E
+ PACK_ALIGNMENT = 0x0D05
+ PACK_LSB_FIRST = 0x0D01
+ PACK_ROW_LENGTH = 0x0D02
+ PACK_SKIP_PIXELS = 0x0D04
+ PACK_SKIP_ROWS = 0x0D03
+ PACK_SWAP_BYTES = 0x0D00
+ PERSPECTIVE_CORRECTION_HINT = 0x0C50
+ PIXEL_MAP_A_TO_A_SIZE = 0x0CB9
+ PIXEL_MAP_B_TO_B_SIZE = 0x0CB8
+ PIXEL_MAP_G_TO_G_SIZE = 0x0CB7
+ PIXEL_MAP_I_TO_A_SIZE = 0x0CB5
+ PIXEL_MAP_I_TO_B_SIZE = 0x0CB4
+ PIXEL_MAP_I_TO_G_SIZE = 0x0CB3
+ PIXEL_MAP_I_TO_I_SIZE = 0x0CB0
+ PIXEL_MAP_I_TO_R_SIZE = 0x0CB2
+ PIXEL_MAP_R_TO_R_SIZE = 0x0CB6
+ PIXEL_MAP_S_TO_S_SIZE = 0x0CB1
+ POINT_SIZE = 0x0B11
+ POINT_SIZE_GRANULARITY = 0x0B13
+ POINT_SIZE_RANGE = 0x0B12
+ POINT_SMOOTH_HINT = 0x0C51
+ POLYGON_MODE = 0x0B40
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ POLYGON_SMOOTH_HINT = 0x0C53
+ PROJECTION_MATRIX = 0x0BA7
+ PROJECTION_STACK_DEPTH = 0x0BA4
+ READ_BUFFER = 0x0C02
+ RED_BIAS = 0x0D15
+ RED_BITS = 0x0D52
+ RED_SCALE = 0x0D14
+ RENDER_MODE = 0x0C40
+ RGBA_MODE = 0x0C31
+ SCISSOR_BOX = 0x0C10
+ SELECTION_BUFFER_SIZE = 0x0DF4
+ SHADE_MODEL = 0x0B54
+ SMOOTH_LINE_WIDTH_GRANULARITY = 0x0B23
+ SMOOTH_LINE_WIDTH_RANGE = 0x0B22
+ SMOOTH_POINT_SIZE_GRANULARITY = 0x0B13
+ SMOOTH_POINT_SIZE_RANGE = 0x0B12
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ STEREO = 0x0C33
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_1D = 0x8068
+ TEXTURE_BINDING_2D = 0x8069
+ TEXTURE_BINDING_3D = 0x806A
+ TEXTURE_COORD_ARRAY_SIZE = 0x8088
+ TEXTURE_COORD_ARRAY_STRIDE = 0x808A
+ TEXTURE_COORD_ARRAY_TYPE = 0x8089
+ TEXTURE_MATRIX = 0x0BA8
+ TEXTURE_STACK_DEPTH = 0x0BA5
+ UNPACK_ALIGNMENT = 0x0CF5
+ UNPACK_LSB_FIRST = 0x0CF1
+ UNPACK_ROW_LENGTH = 0x0CF2
+ UNPACK_SKIP_PIXELS = 0x0CF4
+ UNPACK_SKIP_ROWS = 0x0CF3
+ UNPACK_SWAP_BYTES = 0x0CF0
+ VERTEX_ARRAY_SIZE = 0x807A
+ VERTEX_ARRAY_STRIDE = 0x807C
+ VERTEX_ARRAY_TYPE = 0x807B
+ VIEWPORT = 0x0BA2
+ ZOOM_X = 0x0D16
+ ZOOM_Y = 0x0D17
+
+ COLOR_ARRAY_POINTER = 0x8090
+ EDGE_FLAG_ARRAY_POINTER = 0x8093
+ FEEDBACK_BUFFER_POINTER = 0x0DF0
+ INDEX_ARRAY_POINTER = 0x8091
+ NORMAL_ARRAY_POINTER = 0x808F
+ SELECTION_BUFFER_POINTER = 0x0DF3
+ TEXTURE_COORD_ARRAY_POINTER = 0x8092
+ VERTEX_ARRAY_POINTER = 0x808E
+
+ TEXTURE_ALPHA_SIZE = 0x805F
+ TEXTURE_BLUE_SIZE = 0x805E
+ TEXTURE_BORDER = 0x1005
+ TEXTURE_BORDER_COLOR = 0x1004
+ TEXTURE_COMPONENTS = 0x1003
+ TEXTURE_GREEN_SIZE = 0x805D
+ TEXTURE_HEIGHT = 0x1001
+ TEXTURE_INTENSITY_SIZE = 0x8061
+ TEXTURE_INTERNAL_FORMAT = 0x1003
+ TEXTURE_LUMINANCE_SIZE = 0x8060
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_PRIORITY = 0x8066
+ TEXTURE_RED_SIZE = 0x805C
+ TEXTURE_RESIDENT = 0x8067
+ TEXTURE_WIDTH = 0x1000
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B
+ GENERATE_MIPMAP_HINT = 0x8192
+ PROGRAM_BINARY_RETRIEVABLE_HINT = 0x8257
+ TEXTURE_COMPRESSION_HINT = 0x84EF
+
+ C3F_V3F = 0x2A24
+ C4F_N3F_V3F = 0x2A26
+ C4UB_V2F = 0x2A22
+ C4UB_V3F = 0x2A23
+ N3F_V3F = 0x2A25
+ T2F_C3F_V3F = 0x2A2A
+ T2F_C4F_N3F_V3F = 0x2A2C
+ T2F_C4UB_V3F = 0x2A29
+ T2F_N3F_V3F = 0x2A2B
+ T2F_V3F = 0x2A27
+ T4F_C4F_N3F_V4F = 0x2A2D
+ T4F_V4F = 0x2A28
+ V2F = 0x2A20
+ V3F = 0x2A21
+
+ MODULATE = 0x2100
+ REPLACE = 0x1E01
+
+ SEPARATE_SPECULAR_COLOR = 0x81FA
+ SINGLE_COLOR = 0x81F9
+
+ CONSTANT_ATTENUATION = 0x1207
+ LINEAR_ATTENUATION = 0x1208
+ POSITION = 0x1203
+ QUADRATIC_ATTENUATION = 0x1209
+ SPOT_CUTOFF = 0x1206
+ SPOT_DIRECTION = 0x1204
+ SPOT_EXPONENT = 0x1205
+
+ COMPILE = 0x1300
+ COMPILE_AND_EXECUTE = 0x1301
+
+ AND = 0x1501
+ AND_INVERTED = 0x1504
+ AND_REVERSE = 0x1502
+ CLEAR = 0x1500
+ COPY = 0x1503
+ COPY_INVERTED = 0x150C
+ EQUIV = 0x1509
+ INVERT = 0x150A
+ NAND = 0x150E
+ NOOP = 0x1505
+ NOR = 0x1508
+ OR = 0x1507
+ OR_INVERTED = 0x150D
+ OR_REVERSE = 0x150B
+ SET = 0x150F
+ XOR = 0x1506
+
+ MAP_FLUSH_EXPLICIT_BIT = 0x0010
+ MAP_INVALIDATE_BUFFER_BIT = 0x0008
+ MAP_INVALIDATE_RANGE_BIT = 0x0004
+ MAP_READ_BIT = 0x0001
+ MAP_UNSYNCHRONIZED_BIT = 0x0020
+ MAP_WRITE_BIT = 0x0002
+
+ COLOR_INDEXES = 0x1603
+ SHININESS = 0x1601
+
+ MODELVIEW = 0x1700
+ PROJECTION = 0x1701
+ TEXTURE = 0x1702
+
+ ALL_BARRIER_BITS = 0xFFFFFFFF
+ ATOMIC_COUNTER_BARRIER_BIT = 0x00001000
+ BUFFER_UPDATE_BARRIER_BIT = 0x00000200
+ COMMAND_BARRIER_BIT = 0x00000040
+ ELEMENT_ARRAY_BARRIER_BIT = 0x00000002
+ FRAMEBUFFER_BARRIER_BIT = 0x00000400
+ PIXEL_BUFFER_BARRIER_BIT = 0x00000080
+ SHADER_IMAGE_ACCESS_BARRIER_BIT = 0x00000020
+ SHADER_STORAGE_BARRIER_BIT = 0x00002000
+ TEXTURE_FETCH_BARRIER_BIT = 0x00000008
+ TEXTURE_UPDATE_BARRIER_BIT = 0x00000100
+ TRANSFORM_FEEDBACK_BARRIER_BIT = 0x00000800
+ UNIFORM_BARRIER_BIT = 0x00000004
+ VERTEX_ATTRIB_ARRAY_BARRIER_BIT = 0x00000001
+
+ LINE = 0x1B01
+ POINT = 0x1B00
+
+ FILL = 0x1B02
+
+ COLOR = 0x1800
+ DEPTH = 0x1801
+ STENCIL = 0x1802
+
+ ALPHA = 0x1906
+ BLUE = 0x1905
+ COLOR_INDEX = 0x1900
+ DEPTH_COMPONENT = 0x1902
+ GREEN = 0x1904
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RED = 0x1903
+ RGB = 0x1907
+ RGBA = 0x1908
+ STENCIL_INDEX = 0x1901
+
+ ALPHA12 = 0x803D
+ ALPHA16 = 0x803E
+ ALPHA4 = 0x803B
+ ALPHA8 = 0x803C
+ INTENSITY = 0x8049
+ INTENSITY12 = 0x804C
+ INTENSITY16 = 0x804D
+ INTENSITY4 = 0x804A
+ INTENSITY8 = 0x804B
+ LUMINANCE12 = 0x8041
+ LUMINANCE12_ALPHA12 = 0x8047
+ LUMINANCE12_ALPHA4 = 0x8046
+ LUMINANCE16 = 0x8042
+ LUMINANCE16_ALPHA16 = 0x8048
+ LUMINANCE4 = 0x803F
+ LUMINANCE4_ALPHA4 = 0x8043
+ LUMINANCE6_ALPHA2 = 0x8044
+ LUMINANCE8 = 0x8040
+ LUMINANCE8_ALPHA8 = 0x8045
+ R3_G3_B2 = 0x2A10
+ RGB10 = 0x8052
+ RGB10_A2 = 0x8059
+ RGB12 = 0x8053
+ RGB16 = 0x8054
+ RGB4 = 0x804F
+ RGB5 = 0x8050
+ RGB5_A1 = 0x8057
+ RGB8 = 0x8051
+ RGBA12 = 0x805A
+ RGBA16 = 0x805B
+ RGBA2 = 0x8055
+ RGBA4 = 0x8056
+ RGBA8 = 0x8058
+
+ PACK_IMAGE_HEIGHT = 0x806C
+ PACK_SKIP_IMAGES = 0x806B
+ UNPACK_IMAGE_HEIGHT = 0x806E
+ UNPACK_SKIP_IMAGES = 0x806D
+
+ BITMAP = 0x1A00
+ UNSIGNED_BYTE_3_3_2 = 0x8032
+ UNSIGNED_INT_10_10_10_2 = 0x8036
+ UNSIGNED_INT_8_8_8_8 = 0x8035
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ POINT_DISTANCE_ATTENUATION = 0x8129
+ POINT_FADE_THRESHOLD_SIZE = 0x8128
+ POINT_SIZE_MAX = 0x8127
+ POINT_SIZE_MIN = 0x8126
+
+ LINES = 0x0001
+ LINES_ADJACENCY = 0x000A
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ LINE_STRIP_ADJACENCY = 0x000B
+ PATCHES = 0x000E
+ POINTS = 0x0000
+ POLYGON = 0x0009
+ QUADS = 0x0007
+ QUAD_STRIP = 0x0008
+ TRIANGLES = 0x0004
+ TRIANGLES_ADJACENCY = 0x000C
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+ TRIANGLE_STRIP_ADJACENCY = 0x000D
+
+ FEEDBACK = 0x1C01
+ RENDER = 0x1C00
+ SELECT = 0x1C02
+
+ FLAT = 0x1D00
+ SMOOTH = 0x1D01
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ S = 0x2000
+ T = 0x2001
+ R = 0x2002
+ Q = 0x2003
+
+ DECAL = 0x2101
+
+ TEXTURE_ENV_COLOR = 0x2201
+ TEXTURE_ENV_MODE = 0x2200
+
+ TEXTURE_ENV = 0x2300
+
+ EYE_LINEAR = 0x2400
+ OBJECT_LINEAR = 0x2401
+ SPHERE_MAP = 0x2402
+
+ EYE_PLANE = 0x2502
+ OBJECT_PLANE = 0x2501
+ TEXTURE_GEN_MODE = 0x2500
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ GENERATE_MIPMAP = 0x8191
+ TEXTURE_WRAP_R = 0x8072
+
+ PROXY_TEXTURE_1D = 0x8063
+ PROXY_TEXTURE_2D = 0x8064
+ PROXY_TEXTURE_3D = 0x8070
+ TEXTURE_3D = 0x806F
+ TEXTURE_BASE_LEVEL = 0x813C
+ TEXTURE_MAX_LEVEL = 0x813D
+ TEXTURE_MAX_LOD = 0x813B
+ TEXTURE_MIN_LOD = 0x813A
+
+ CLAMP = 0x2900
+ CLAMP_TO_BORDER = 0x812D
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ VERTEX_SHADER_BIT = 0x00000001
+ FRAGMENT_SHADER_BIT = 0x00000002
+ GEOMETRY_SHADER_BIT = 0x00000004
+ TESS_CONTROL_SHADER_BIT = 0x00000008
+ TESS_EVALUATION_SHADER_BIT = 0x00000010
+ COMPUTE_SHADER_BIT = 0x00000020
+ ALL_SHADER_BITS = 0xFFFFFFFF
+
+ SYNC_FLUSH_COMMANDS_BIT = 0x00000001
+ INVALID_INDEX = 0xFFFFFFFF
+ TIMEOUT_IGNORED = 0xFFFFFFFFFFFFFFFF
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ FUNC_ADD = 0x8006
+ MIN = 0x8007
+ MAX = 0x8008
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ RESCALE_NORMAL = 0x803A
+ TEXTURE_DEPTH = 0x8071
+ MAX_3D_TEXTURE_SIZE = 0x8073
+ MULTISAMPLE = 0x809D
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_ALPHA_TO_ONE = 0x809F
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ BGR = 0x80E0
+ BGRA = 0x80E1
+ MAX_ELEMENTS_VERTICES = 0x80E8
+ MAX_ELEMENTS_INDICES = 0x80E9
+ DEPTH_COMPONENT16 = 0x81A5
+ DEPTH_COMPONENT24 = 0x81A6
+ DEPTH_COMPONENT32 = 0x81A7
+ FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210
+ FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211
+ FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212
+ FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213
+ FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214
+ FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215
+ FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216
+ FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217
+ FRAMEBUFFER_DEFAULT = 0x8218
+ FRAMEBUFFER_UNDEFINED = 0x8219
+ DEPTH_STENCIL_ATTACHMENT = 0x821A
+ MAJOR_VERSION = 0x821B
+ MINOR_VERSION = 0x821C
+ NUM_EXTENSIONS = 0x821D
+ CONTEXT_FLAGS = 0x821E
+ COMPRESSED_RED = 0x8225
+ COMPRESSED_RG = 0x8226
+ RG = 0x8227
+ RG_INTEGER = 0x8228
+ R8 = 0x8229
+ R16 = 0x822A
+ RG8 = 0x822B
+ RG16 = 0x822C
+ R16F = 0x822D
+ R32F = 0x822E
+ RG16F = 0x822F
+ RG32F = 0x8230
+ R8I = 0x8231
+ R8UI = 0x8232
+ R16I = 0x8233
+ R16UI = 0x8234
+ R32I = 0x8235
+ R32UI = 0x8236
+ RG8I = 0x8237
+ RG8UI = 0x8238
+ RG16I = 0x8239
+ RG16UI = 0x823A
+ RG32I = 0x823B
+ RG32UI = 0x823C
+ DEBUG_OUTPUT_SYNCHRONOUS = 0x8242
+ DEBUG_NEXT_LOGGED_MESSAGE_LENGTH = 0x8243
+ DEBUG_CALLBACK_FUNCTION = 0x8244
+ DEBUG_CALLBACK_USER_PARAM = 0x8245
+ DEBUG_SOURCE_API = 0x8246
+ DEBUG_SOURCE_WINDOW_SYSTEM = 0x8247
+ DEBUG_SOURCE_SHADER_COMPILER = 0x8248
+ DEBUG_SOURCE_THIRD_PARTY = 0x8249
+ DEBUG_SOURCE_APPLICATION = 0x824A
+ DEBUG_SOURCE_OTHER = 0x824B
+ DEBUG_TYPE_ERROR = 0x824C
+ DEBUG_TYPE_DEPRECATED_BEHAVIOR = 0x824D
+ DEBUG_TYPE_UNDEFINED_BEHAVIOR = 0x824E
+ DEBUG_TYPE_PORTABILITY = 0x824F
+ DEBUG_TYPE_PERFORMANCE = 0x8250
+ DEBUG_TYPE_OTHER = 0x8251
+ PROGRAM_SEPARABLE = 0x8258
+ ACTIVE_PROGRAM = 0x8259
+ PROGRAM_PIPELINE_BINDING = 0x825A
+ MAX_VIEWPORTS = 0x825B
+ VIEWPORT_SUBPIXEL_BITS = 0x825C
+ VIEWPORT_BOUNDS_RANGE = 0x825D
+ LAYER_PROVOKING_VERTEX = 0x825E
+ VIEWPORT_INDEX_PROVOKING_VERTEX = 0x825F
+ UNDEFINED_VERTEX = 0x8260
+ MAX_COMPUTE_SHARED_MEMORY_SIZE = 0x8262
+ MAX_COMPUTE_UNIFORM_COMPONENTS = 0x8263
+ MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS = 0x8264
+ MAX_COMPUTE_ATOMIC_COUNTERS = 0x8265
+ MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS = 0x8266
+ COMPUTE_WORK_GROUP_SIZE = 0x8267
+ DEBUG_TYPE_MARKER = 0x8268
+ DEBUG_TYPE_PUSH_GROUP = 0x8269
+ DEBUG_TYPE_POP_GROUP = 0x826A
+ DEBUG_SEVERITY_NOTIFICATION = 0x826B
+ MAX_DEBUG_GROUP_STACK_DEPTH = 0x826C
+ DEBUG_GROUP_STACK_DEPTH = 0x826D
+ MAX_UNIFORM_LOCATIONS = 0x826E
+ INTERNALFORMAT_SUPPORTED = 0x826F
+ INTERNALFORMAT_PREFERRED = 0x8270
+ INTERNALFORMAT_RED_SIZE = 0x8271
+ INTERNALFORMAT_GREEN_SIZE = 0x8272
+ INTERNALFORMAT_BLUE_SIZE = 0x8273
+ INTERNALFORMAT_ALPHA_SIZE = 0x8274
+ INTERNALFORMAT_DEPTH_SIZE = 0x8275
+ INTERNALFORMAT_STENCIL_SIZE = 0x8276
+ INTERNALFORMAT_SHARED_SIZE = 0x8277
+ INTERNALFORMAT_RED_TYPE = 0x8278
+ INTERNALFORMAT_GREEN_TYPE = 0x8279
+ INTERNALFORMAT_BLUE_TYPE = 0x827A
+ INTERNALFORMAT_ALPHA_TYPE = 0x827B
+ INTERNALFORMAT_DEPTH_TYPE = 0x827C
+ INTERNALFORMAT_STENCIL_TYPE = 0x827D
+ MAX_WIDTH = 0x827E
+ MAX_HEIGHT = 0x827F
+ MAX_DEPTH = 0x8280
+ MAX_LAYERS = 0x8281
+ MAX_COMBINED_DIMENSIONS = 0x8282
+ COLOR_COMPONENTS = 0x8283
+ DEPTH_COMPONENTS = 0x8284
+ STENCIL_COMPONENTS = 0x8285
+ COLOR_RENDERABLE = 0x8286
+ DEPTH_RENDERABLE = 0x8287
+ STENCIL_RENDERABLE = 0x8288
+ FRAMEBUFFER_RENDERABLE = 0x8289
+ FRAMEBUFFER_RENDERABLE_LAYERED = 0x828A
+ FRAMEBUFFER_BLEND = 0x828B
+ READ_PIXELS = 0x828C
+ READ_PIXELS_FORMAT = 0x828D
+ READ_PIXELS_TYPE = 0x828E
+ TEXTURE_IMAGE_FORMAT = 0x828F
+ TEXTURE_IMAGE_TYPE = 0x8290
+ GET_TEXTURE_IMAGE_FORMAT = 0x8291
+ GET_TEXTURE_IMAGE_TYPE = 0x8292
+ MIPMAP = 0x8293
+ MANUAL_GENERATE_MIPMAP = 0x8294
+ AUTO_GENERATE_MIPMAP = 0x8295
+ COLOR_ENCODING = 0x8296
+ SRGB_READ = 0x8297
+ SRGB_WRITE = 0x8298
+ FILTER = 0x829A
+ VERTEX_TEXTURE = 0x829B
+ TESS_CONTROL_TEXTURE = 0x829C
+ TESS_EVALUATION_TEXTURE = 0x829D
+ GEOMETRY_TEXTURE = 0x829E
+ FRAGMENT_TEXTURE = 0x829F
+ COMPUTE_TEXTURE = 0x82A0
+ TEXTURE_SHADOW = 0x82A1
+ TEXTURE_GATHER = 0x82A2
+ TEXTURE_GATHER_SHADOW = 0x82A3
+ SHADER_IMAGE_LOAD = 0x82A4
+ SHADER_IMAGE_STORE = 0x82A5
+ SHADER_IMAGE_ATOMIC = 0x82A6
+ IMAGE_TEXEL_SIZE = 0x82A7
+ IMAGE_COMPATIBILITY_CLASS = 0x82A8
+ IMAGE_PIXEL_FORMAT = 0x82A9
+ IMAGE_PIXEL_TYPE = 0x82AA
+ SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST = 0x82AC
+ SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST = 0x82AD
+ SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE = 0x82AE
+ SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE = 0x82AF
+ TEXTURE_COMPRESSED_BLOCK_WIDTH = 0x82B1
+ TEXTURE_COMPRESSED_BLOCK_HEIGHT = 0x82B2
+ TEXTURE_COMPRESSED_BLOCK_SIZE = 0x82B3
+ CLEAR_BUFFER = 0x82B4
+ TEXTURE_VIEW = 0x82B5
+ VIEW_COMPATIBILITY_CLASS = 0x82B6
+ FULL_SUPPORT = 0x82B7
+ CAVEAT_SUPPORT = 0x82B8
+ IMAGE_CLASS_4_X_32 = 0x82B9
+ IMAGE_CLASS_2_X_32 = 0x82BA
+ IMAGE_CLASS_1_X_32 = 0x82BB
+ IMAGE_CLASS_4_X_16 = 0x82BC
+ IMAGE_CLASS_2_X_16 = 0x82BD
+ IMAGE_CLASS_1_X_16 = 0x82BE
+ IMAGE_CLASS_4_X_8 = 0x82BF
+ IMAGE_CLASS_2_X_8 = 0x82C0
+ IMAGE_CLASS_1_X_8 = 0x82C1
+ IMAGE_CLASS_11_11_10 = 0x82C2
+ IMAGE_CLASS_10_10_10_2 = 0x82C3
+ VIEW_CLASS_128_BITS = 0x82C4
+ VIEW_CLASS_96_BITS = 0x82C5
+ VIEW_CLASS_64_BITS = 0x82C6
+ VIEW_CLASS_48_BITS = 0x82C7
+ VIEW_CLASS_32_BITS = 0x82C8
+ VIEW_CLASS_24_BITS = 0x82C9
+ VIEW_CLASS_16_BITS = 0x82CA
+ VIEW_CLASS_8_BITS = 0x82CB
+ VIEW_CLASS_S3TC_DXT1_RGB = 0x82CC
+ VIEW_CLASS_S3TC_DXT1_RGBA = 0x82CD
+ VIEW_CLASS_S3TC_DXT3_RGBA = 0x82CE
+ VIEW_CLASS_S3TC_DXT5_RGBA = 0x82CF
+ VIEW_CLASS_RGTC1_RED = 0x82D0
+ VIEW_CLASS_RGTC2_RG = 0x82D1
+ VIEW_CLASS_BPTC_UNORM = 0x82D2
+ VIEW_CLASS_BPTC_FLOAT = 0x82D3
+ VERTEX_ATTRIB_BINDING = 0x82D4
+ VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D5
+ VERTEX_BINDING_DIVISOR = 0x82D6
+ VERTEX_BINDING_OFFSET = 0x82D7
+ VERTEX_BINDING_STRIDE = 0x82D8
+ MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = 0x82D9
+ MAX_VERTEX_ATTRIB_BINDINGS = 0x82DA
+ TEXTURE_VIEW_MIN_LEVEL = 0x82DB
+ TEXTURE_VIEW_NUM_LEVELS = 0x82DC
+ TEXTURE_VIEW_MIN_LAYER = 0x82DD
+ TEXTURE_VIEW_NUM_LAYERS = 0x82DE
+ TEXTURE_IMMUTABLE_LEVELS = 0x82DF
+ BUFFER = 0x82E0
+ SHADER = 0x82E1
+ PROGRAM = 0x82E2
+ QUERY = 0x82E3
+ PROGRAM_PIPELINE = 0x82E4
+ SAMPLER = 0x82E6
+ MAX_LABEL_LENGTH = 0x82E8
+ NUM_SHADING_LANGUAGE_VERSIONS = 0x82E9
+ UNSIGNED_BYTE_2_3_3_REV = 0x8362
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ UNSIGNED_SHORT_5_6_5_REV = 0x8364
+ UNSIGNED_SHORT_4_4_4_4_REV = 0x8365
+ UNSIGNED_SHORT_1_5_5_5_REV = 0x8366
+ UNSIGNED_INT_8_8_8_8_REV = 0x8367
+ UNSIGNED_INT_2_10_10_10_REV = 0x8368
+ MIRRORED_REPEAT = 0x8370
+ FOG_COORDINATE_SOURCE = 0x8450
+ FOG_COORD_SRC = 0x8450
+ FOG_COORDINATE = 0x8451
+ FOG_COORD = 0x8451
+ FRAGMENT_DEPTH = 0x8452
+ CURRENT_FOG_COORDINATE = 0x8453
+ CURRENT_FOG_COORD = 0x8453
+ FOG_COORDINATE_ARRAY_TYPE = 0x8454
+ FOG_COORD_ARRAY_TYPE = 0x8454
+ FOG_COORDINATE_ARRAY_STRIDE = 0x8455
+ FOG_COORD_ARRAY_STRIDE = 0x8455
+ FOG_COORDINATE_ARRAY_POINTER = 0x8456
+ FOG_COORD_ARRAY_POINTER = 0x8456
+ FOG_COORDINATE_ARRAY = 0x8457
+ FOG_COORD_ARRAY = 0x8457
+ COLOR_SUM = 0x8458
+ CURRENT_SECONDARY_COLOR = 0x8459
+ SECONDARY_COLOR_ARRAY_SIZE = 0x845A
+ SECONDARY_COLOR_ARRAY_TYPE = 0x845B
+ SECONDARY_COLOR_ARRAY_STRIDE = 0x845C
+ SECONDARY_COLOR_ARRAY_POINTER = 0x845D
+ SECONDARY_COLOR_ARRAY = 0x845E
+ CURRENT_RASTER_SECONDARY_COLOR = 0x845F
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ CLIENT_ACTIVE_TEXTURE = 0x84E1
+ MAX_TEXTURE_UNITS = 0x84E2
+ TRANSPOSE_MODELVIEW_MATRIX = 0x84E3
+ TRANSPOSE_PROJECTION_MATRIX = 0x84E4
+ TRANSPOSE_TEXTURE_MATRIX = 0x84E5
+ TRANSPOSE_COLOR_MATRIX = 0x84E6
+ SUBTRACT = 0x84E7
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ COMPRESSED_ALPHA = 0x84E9
+ COMPRESSED_LUMINANCE = 0x84EA
+ COMPRESSED_LUMINANCE_ALPHA = 0x84EB
+ COMPRESSED_INTENSITY = 0x84EC
+ COMPRESSED_RGB = 0x84ED
+ COMPRESSED_RGBA = 0x84EE
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER = 0x84F0
+ UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x84F1
+ TEXTURE_RECTANGLE = 0x84F5
+ TEXTURE_BINDING_RECTANGLE = 0x84F6
+ PROXY_TEXTURE_RECTANGLE = 0x84F7
+ MAX_RECTANGLE_TEXTURE_SIZE = 0x84F8
+ DEPTH_STENCIL = 0x84F9
+ UNSIGNED_INT_24_8 = 0x84FA
+ MAX_TEXTURE_LOD_BIAS = 0x84FD
+ TEXTURE_FILTER_CONTROL = 0x8500
+ TEXTURE_LOD_BIAS = 0x8501
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ NORMAL_MAP = 0x8511
+ REFLECTION_MAP = 0x8512
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ PROXY_TEXTURE_CUBE_MAP = 0x851B
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ COMBINE = 0x8570
+ COMBINE_RGB = 0x8571
+ COMBINE_ALPHA = 0x8572
+ RGB_SCALE = 0x8573
+ ADD_SIGNED = 0x8574
+ INTERPOLATE = 0x8575
+ CONSTANT = 0x8576
+ PRIMARY_COLOR = 0x8577
+ PREVIOUS = 0x8578
+ SOURCE0_RGB = 0x8580
+ SRC0_RGB = 0x8580
+ SOURCE1_RGB = 0x8581
+ SRC1_RGB = 0x8581
+ SOURCE2_RGB = 0x8582
+ SRC2_RGB = 0x8582
+ SOURCE0_ALPHA = 0x8588
+ SRC0_ALPHA = 0x8588
+ SOURCE1_ALPHA = 0x8589
+ SRC1_ALPHA = 0x8589
+ SOURCE2_ALPHA = 0x858A
+ SRC2_ALPHA = 0x858A
+ OPERAND0_RGB = 0x8590
+ OPERAND1_RGB = 0x8591
+ OPERAND2_RGB = 0x8592
+ OPERAND0_ALPHA = 0x8598
+ OPERAND1_ALPHA = 0x8599
+ OPERAND2_ALPHA = 0x859A
+ VERTEX_ARRAY_BINDING = 0x85B5
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_PROGRAM_POINT_SIZE = 0x8642
+ PROGRAM_POINT_SIZE = 0x8642
+ VERTEX_PROGRAM_TWO_SIDE = 0x8643
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ DEPTH_CLAMP = 0x864F
+ TEXTURE_COMPRESSED_IMAGE_SIZE = 0x86A0
+ TEXTURE_COMPRESSED = 0x86A1
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ DOT3_RGB = 0x86AE
+ DOT3_RGBA = 0x86AF
+ PROGRAM_BINARY_LENGTH = 0x8741
+ VERTEX_ATTRIB_ARRAY_LONG = 0x874E
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ NUM_PROGRAM_BINARY_FORMATS = 0x87FE
+ PROGRAM_BINARY_FORMATS = 0x87FF
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ RGBA32F = 0x8814
+ RGB32F = 0x8815
+ RGBA16F = 0x881A
+ RGB16F = 0x881B
+ MAX_DRAW_BUFFERS = 0x8824
+ DRAW_BUFFER0 = 0x8825
+ DRAW_BUFFER1 = 0x8826
+ DRAW_BUFFER2 = 0x8827
+ DRAW_BUFFER3 = 0x8828
+ DRAW_BUFFER4 = 0x8829
+ DRAW_BUFFER5 = 0x882A
+ DRAW_BUFFER6 = 0x882B
+ DRAW_BUFFER7 = 0x882C
+ DRAW_BUFFER8 = 0x882D
+ DRAW_BUFFER9 = 0x882E
+ DRAW_BUFFER10 = 0x882F
+ DRAW_BUFFER11 = 0x8830
+ DRAW_BUFFER12 = 0x8831
+ DRAW_BUFFER13 = 0x8832
+ DRAW_BUFFER14 = 0x8833
+ DRAW_BUFFER15 = 0x8834
+ BLEND_EQUATION_ALPHA = 0x883D
+ TEXTURE_DEPTH_SIZE = 0x884A
+ DEPTH_TEXTURE_MODE = 0x884B
+ TEXTURE_COMPARE_MODE = 0x884C
+ TEXTURE_COMPARE_FUNC = 0x884D
+ COMPARE_R_TO_TEXTURE = 0x884E
+ COMPARE_REF_TO_TEXTURE = 0x884E
+ TEXTURE_CUBE_MAP_SEAMLESS = 0x884F
+ POINT_SPRITE = 0x8861
+ COORD_REPLACE = 0x8862
+ QUERY_COUNTER_BITS = 0x8864
+ CURRENT_QUERY = 0x8865
+ QUERY_RESULT = 0x8866
+ QUERY_RESULT_AVAILABLE = 0x8867
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TESS_CONTROL_INPUT_COMPONENTS = 0x886C
+ MAX_TESS_EVALUATION_INPUT_COMPONENTS = 0x886D
+ MAX_TEXTURE_COORDS = 0x8871
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ GEOMETRY_SHADER_INVOCATIONS = 0x887F
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ARRAY_BUFFER_BINDING = 0x8896
+ NORMAL_ARRAY_BUFFER_BINDING = 0x8897
+ COLOR_ARRAY_BUFFER_BINDING = 0x8898
+ INDEX_ARRAY_BUFFER_BINDING = 0x8899
+ TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A
+ EDGE_FLAG_ARRAY_BUFFER_BINDING = 0x889B
+ SECONDARY_COLOR_ARRAY_BUFFER_BINDING = 0x889C
+ FOG_COORDINATE_ARRAY_BUFFER_BINDING = 0x889D
+ FOG_COORD_ARRAY_BUFFER_BINDING = 0x889D
+ WEIGHT_ARRAY_BUFFER_BINDING = 0x889E
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ READ_ONLY = 0x88B8
+ WRITE_ONLY = 0x88B9
+ READ_WRITE = 0x88BA
+ BUFFER_ACCESS = 0x88BB
+ BUFFER_MAPPED = 0x88BC
+ BUFFER_MAP_POINTER = 0x88BD
+ TIME_ELAPSED = 0x88BF
+ STREAM_DRAW = 0x88E0
+ STREAM_READ = 0x88E1
+ STREAM_COPY = 0x88E2
+ STATIC_DRAW = 0x88E4
+ STATIC_READ = 0x88E5
+ STATIC_COPY = 0x88E6
+ DYNAMIC_DRAW = 0x88E8
+ DYNAMIC_READ = 0x88E9
+ DYNAMIC_COPY = 0x88EA
+ PIXEL_PACK_BUFFER = 0x88EB
+ PIXEL_UNPACK_BUFFER = 0x88EC
+ PIXEL_PACK_BUFFER_BINDING = 0x88ED
+ PIXEL_UNPACK_BUFFER_BINDING = 0x88EF
+ DEPTH24_STENCIL8 = 0x88F0
+ TEXTURE_STENCIL_SIZE = 0x88F1
+ SRC1_COLOR = 0x88F9
+ ONE_MINUS_SRC1_COLOR = 0x88FA
+ ONE_MINUS_SRC1_ALPHA = 0x88FB
+ MAX_DUAL_SOURCE_DRAW_BUFFERS = 0x88FC
+ VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD
+ VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE
+ MAX_ARRAY_TEXTURE_LAYERS = 0x88FF
+ MIN_PROGRAM_TEXEL_OFFSET = 0x8904
+ MAX_PROGRAM_TEXEL_OFFSET = 0x8905
+ SAMPLES_PASSED = 0x8914
+ GEOMETRY_VERTICES_OUT = 0x8916
+ GEOMETRY_INPUT_TYPE = 0x8917
+ GEOMETRY_OUTPUT_TYPE = 0x8918
+ SAMPLER_BINDING = 0x8919
+ CLAMP_VERTEX_COLOR = 0x891A
+ CLAMP_FRAGMENT_COLOR = 0x891B
+ CLAMP_READ_COLOR = 0x891C
+ FIXED_ONLY = 0x891D
+ UNIFORM_BUFFER = 0x8A11
+ UNIFORM_BUFFER_BINDING = 0x8A28
+ UNIFORM_BUFFER_START = 0x8A29
+ UNIFORM_BUFFER_SIZE = 0x8A2A
+ MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B
+ MAX_GEOMETRY_UNIFORM_BLOCKS = 0x8A2C
+ MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D
+ MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E
+ MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F
+ MAX_UNIFORM_BLOCK_SIZE = 0x8A30
+ MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31
+ MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS = 0x8A32
+ MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33
+ UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34
+ ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH = 0x8A35
+ ACTIVE_UNIFORM_BLOCKS = 0x8A36
+ UNIFORM_TYPE = 0x8A37
+ UNIFORM_SIZE = 0x8A38
+ UNIFORM_NAME_LENGTH = 0x8A39
+ UNIFORM_BLOCK_INDEX = 0x8A3A
+ UNIFORM_OFFSET = 0x8A3B
+ UNIFORM_ARRAY_STRIDE = 0x8A3C
+ UNIFORM_MATRIX_STRIDE = 0x8A3D
+ UNIFORM_IS_ROW_MAJOR = 0x8A3E
+ UNIFORM_BLOCK_BINDING = 0x8A3F
+ UNIFORM_BLOCK_DATA_SIZE = 0x8A40
+ UNIFORM_BLOCK_NAME_LENGTH = 0x8A41
+ UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42
+ UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43
+ UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44
+ UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER = 0x8A45
+ UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49
+ MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A
+ MAX_VARYING_FLOATS = 0x8B4B
+ MAX_VARYING_COMPONENTS = 0x8B4B
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_1D = 0x8B5D
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_3D = 0x8B5F
+ SAMPLER_CUBE = 0x8B60
+ SAMPLER_1D_SHADOW = 0x8B61
+ SAMPLER_2D_SHADOW = 0x8B62
+ SAMPLER_2D_RECT = 0x8B63
+ SAMPLER_2D_RECT_SHADOW = 0x8B64
+ FLOAT_MAT2x3 = 0x8B65
+ FLOAT_MAT2x4 = 0x8B66
+ FLOAT_MAT3x2 = 0x8B67
+ FLOAT_MAT3x4 = 0x8B68
+ FLOAT_MAT4x2 = 0x8B69
+ FLOAT_MAT4x3 = 0x8B6A
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+ IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+ TEXTURE_RED_TYPE = 0x8C10
+ TEXTURE_GREEN_TYPE = 0x8C11
+ TEXTURE_BLUE_TYPE = 0x8C12
+ TEXTURE_ALPHA_TYPE = 0x8C13
+ TEXTURE_DEPTH_TYPE = 0x8C16
+ UNSIGNED_NORMALIZED = 0x8C17
+ TEXTURE_1D_ARRAY = 0x8C18
+ PROXY_TEXTURE_1D_ARRAY = 0x8C19
+ TEXTURE_2D_ARRAY = 0x8C1A
+ PROXY_TEXTURE_2D_ARRAY = 0x8C1B
+ TEXTURE_BINDING_1D_ARRAY = 0x8C1C
+ TEXTURE_BINDING_2D_ARRAY = 0x8C1D
+ MAX_GEOMETRY_TEXTURE_IMAGE_UNITS = 0x8C29
+ TEXTURE_BUFFER = 0x8C2A
+ MAX_TEXTURE_BUFFER_SIZE = 0x8C2B
+ TEXTURE_BINDING_BUFFER = 0x8C2C
+ TEXTURE_BUFFER_DATA_STORE_BINDING = 0x8C2D
+ ANY_SAMPLES_PASSED = 0x8C2F
+ SAMPLE_SHADING = 0x8C36
+ MIN_SAMPLE_SHADING_VALUE = 0x8C37
+ R11F_G11F_B10F = 0x8C3A
+ UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B
+ RGB9_E5 = 0x8C3D
+ UNSIGNED_INT_5_9_9_9_REV = 0x8C3E
+ TEXTURE_SHARED_SIZE = 0x8C3F
+ SRGB = 0x8C40
+ SRGB8 = 0x8C41
+ SRGB_ALPHA = 0x8C42
+ SRGB8_ALPHA8 = 0x8C43
+ SLUMINANCE_ALPHA = 0x8C44
+ SLUMINANCE8_ALPHA8 = 0x8C45
+ SLUMINANCE = 0x8C46
+ SLUMINANCE8 = 0x8C47
+ COMPRESSED_SRGB = 0x8C48
+ COMPRESSED_SRGB_ALPHA = 0x8C49
+ COMPRESSED_SLUMINANCE = 0x8C4A
+ COMPRESSED_SLUMINANCE_ALPHA = 0x8C4B
+ TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH = 0x8C76
+ TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80
+ TRANSFORM_FEEDBACK_VARYINGS = 0x8C83
+ TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84
+ TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85
+ PRIMITIVES_GENERATED = 0x8C87
+ TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88
+ RASTERIZER_DISCARD = 0x8C89
+ MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A
+ MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B
+ INTERLEAVED_ATTRIBS = 0x8C8C
+ SEPARATE_ATTRIBS = 0x8C8D
+ TRANSFORM_FEEDBACK_BUFFER = 0x8C8E
+ TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F
+ POINT_SPRITE_COORD_ORIGIN = 0x8CA0
+ LOWER_LEFT = 0x8CA1
+ UPPER_LEFT = 0x8CA2
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ DRAW_FRAMEBUFFER_BINDING = 0x8CA6
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ READ_FRAMEBUFFER = 0x8CA8
+ DRAW_FRAMEBUFFER = 0x8CA9
+ READ_FRAMEBUFFER_BINDING = 0x8CAA
+ RENDERBUFFER_SAMPLES = 0x8CAB
+ DEPTH_COMPONENT32F = 0x8CAC
+ DEPTH32F_STENCIL8 = 0x8CAD
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER = 0x8CDB
+ FRAMEBUFFER_INCOMPLETE_READ_BUFFER = 0x8CDC
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ MAX_COLOR_ATTACHMENTS = 0x8CDF
+ COLOR_ATTACHMENT0 = 0x8CE0
+ COLOR_ATTACHMENT1 = 0x8CE1
+ COLOR_ATTACHMENT2 = 0x8CE2
+ COLOR_ATTACHMENT3 = 0x8CE3
+ COLOR_ATTACHMENT4 = 0x8CE4
+ COLOR_ATTACHMENT5 = 0x8CE5
+ COLOR_ATTACHMENT6 = 0x8CE6
+ COLOR_ATTACHMENT7 = 0x8CE7
+ COLOR_ATTACHMENT8 = 0x8CE8
+ COLOR_ATTACHMENT9 = 0x8CE9
+ COLOR_ATTACHMENT10 = 0x8CEA
+ COLOR_ATTACHMENT11 = 0x8CEB
+ COLOR_ATTACHMENT12 = 0x8CEC
+ COLOR_ATTACHMENT13 = 0x8CED
+ COLOR_ATTACHMENT14 = 0x8CEE
+ COLOR_ATTACHMENT15 = 0x8CEF
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX1 = 0x8D46
+ STENCIL_INDEX4 = 0x8D47
+ STENCIL_INDEX8 = 0x8D48
+ STENCIL_INDEX16 = 0x8D49
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56
+ MAX_SAMPLES = 0x8D57
+ RGB565 = 0x8D62
+ PRIMITIVE_RESTART_FIXED_INDEX = 0x8D69
+ ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A
+ MAX_ELEMENT_INDEX = 0x8D6B
+ RGBA32UI = 0x8D70
+ RGB32UI = 0x8D71
+ RGBA16UI = 0x8D76
+ RGB16UI = 0x8D77
+ RGBA8UI = 0x8D7C
+ RGB8UI = 0x8D7D
+ RGBA32I = 0x8D82
+ RGB32I = 0x8D83
+ RGBA16I = 0x8D88
+ RGB16I = 0x8D89
+ RGBA8I = 0x8D8E
+ RGB8I = 0x8D8F
+ RED_INTEGER = 0x8D94
+ GREEN_INTEGER = 0x8D95
+ BLUE_INTEGER = 0x8D96
+ ALPHA_INTEGER = 0x8D97
+ RGB_INTEGER = 0x8D98
+ RGBA_INTEGER = 0x8D99
+ BGR_INTEGER = 0x8D9A
+ BGRA_INTEGER = 0x8D9B
+ INT_2_10_10_10_REV = 0x8D9F
+ FRAMEBUFFER_ATTACHMENT_LAYERED = 0x8DA7
+ FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS = 0x8DA8
+ FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD
+ FRAMEBUFFER_SRGB = 0x8DB9
+ COMPRESSED_RED_RGTC1 = 0x8DBB
+ COMPRESSED_SIGNED_RED_RGTC1 = 0x8DBC
+ COMPRESSED_RG_RGTC2 = 0x8DBD
+ COMPRESSED_SIGNED_RG_RGTC2 = 0x8DBE
+ SAMPLER_1D_ARRAY = 0x8DC0
+ SAMPLER_2D_ARRAY = 0x8DC1
+ SAMPLER_BUFFER = 0x8DC2
+ SAMPLER_1D_ARRAY_SHADOW = 0x8DC3
+ SAMPLER_2D_ARRAY_SHADOW = 0x8DC4
+ SAMPLER_CUBE_SHADOW = 0x8DC5
+ UNSIGNED_INT_VEC2 = 0x8DC6
+ UNSIGNED_INT_VEC3 = 0x8DC7
+ UNSIGNED_INT_VEC4 = 0x8DC8
+ INT_SAMPLER_1D = 0x8DC9
+ INT_SAMPLER_2D = 0x8DCA
+ INT_SAMPLER_3D = 0x8DCB
+ INT_SAMPLER_CUBE = 0x8DCC
+ INT_SAMPLER_2D_RECT = 0x8DCD
+ INT_SAMPLER_1D_ARRAY = 0x8DCE
+ INT_SAMPLER_2D_ARRAY = 0x8DCF
+ INT_SAMPLER_BUFFER = 0x8DD0
+ UNSIGNED_INT_SAMPLER_1D = 0x8DD1
+ UNSIGNED_INT_SAMPLER_2D = 0x8DD2
+ UNSIGNED_INT_SAMPLER_3D = 0x8DD3
+ UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4
+ UNSIGNED_INT_SAMPLER_2D_RECT = 0x8DD5
+ UNSIGNED_INT_SAMPLER_1D_ARRAY = 0x8DD6
+ UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7
+ UNSIGNED_INT_SAMPLER_BUFFER = 0x8DD8
+ GEOMETRY_SHADER = 0x8DD9
+ MAX_GEOMETRY_UNIFORM_COMPONENTS = 0x8DDF
+ MAX_GEOMETRY_OUTPUT_VERTICES = 0x8DE0
+ MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS = 0x8DE1
+ ACTIVE_SUBROUTINES = 0x8DE5
+ ACTIVE_SUBROUTINE_UNIFORMS = 0x8DE6
+ MAX_SUBROUTINES = 0x8DE7
+ MAX_SUBROUTINE_UNIFORM_LOCATIONS = 0x8DE8
+ LOW_FLOAT = 0x8DF0
+ MEDIUM_FLOAT = 0x8DF1
+ HIGH_FLOAT = 0x8DF2
+ LOW_INT = 0x8DF3
+ MEDIUM_INT = 0x8DF4
+ HIGH_INT = 0x8DF5
+ SHADER_BINARY_FORMATS = 0x8DF8
+ NUM_SHADER_BINARY_FORMATS = 0x8DF9
+ SHADER_COMPILER = 0x8DFA
+ MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+ MAX_VARYING_VECTORS = 0x8DFC
+ MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+ QUERY_WAIT = 0x8E13
+ QUERY_NO_WAIT = 0x8E14
+ QUERY_BY_REGION_WAIT = 0x8E15
+ QUERY_BY_REGION_NO_WAIT = 0x8E16
+ MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E1E
+ MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E1F
+ TRANSFORM_FEEDBACK = 0x8E22
+ TRANSFORM_FEEDBACK_BUFFER_PAUSED = 0x8E23
+ TRANSFORM_FEEDBACK_BUFFER_ACTIVE = 0x8E24
+ TRANSFORM_FEEDBACK_BINDING = 0x8E25
+ TIMESTAMP = 0x8E28
+ TEXTURE_SWIZZLE_R = 0x8E42
+ TEXTURE_SWIZZLE_G = 0x8E43
+ TEXTURE_SWIZZLE_B = 0x8E44
+ TEXTURE_SWIZZLE_A = 0x8E45
+ TEXTURE_SWIZZLE_RGBA = 0x8E46
+ ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS = 0x8E47
+ ACTIVE_SUBROUTINE_MAX_LENGTH = 0x8E48
+ ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH = 0x8E49
+ NUM_COMPATIBLE_SUBROUTINES = 0x8E4A
+ COMPATIBLE_SUBROUTINES = 0x8E4B
+ QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION = 0x8E4C
+ FIRST_VERTEX_CONVENTION = 0x8E4D
+ LAST_VERTEX_CONVENTION = 0x8E4E
+ PROVOKING_VERTEX = 0x8E4F
+ SAMPLE_POSITION = 0x8E50
+ SAMPLE_MASK = 0x8E51
+ SAMPLE_MASK_VALUE = 0x8E52
+ MAX_SAMPLE_MASK_WORDS = 0x8E59
+ MAX_GEOMETRY_SHADER_INVOCATIONS = 0x8E5A
+ MIN_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5B
+ MAX_FRAGMENT_INTERPOLATION_OFFSET = 0x8E5C
+ FRAGMENT_INTERPOLATION_OFFSET_BITS = 0x8E5D
+ MIN_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5E
+ MAX_PROGRAM_TEXTURE_GATHER_OFFSET = 0x8E5F
+ MAX_TRANSFORM_FEEDBACK_BUFFERS = 0x8E70
+ MAX_VERTEX_STREAMS = 0x8E71
+ PATCH_VERTICES = 0x8E72
+ PATCH_DEFAULT_INNER_LEVEL = 0x8E73
+ PATCH_DEFAULT_OUTER_LEVEL = 0x8E74
+ TESS_CONTROL_OUTPUT_VERTICES = 0x8E75
+ TESS_GEN_MODE = 0x8E76
+ TESS_GEN_SPACING = 0x8E77
+ TESS_GEN_VERTEX_ORDER = 0x8E78
+ TESS_GEN_POINT_MODE = 0x8E79
+ ISOLINES = 0x8E7A
+ FRACTIONAL_ODD = 0x8E7B
+ FRACTIONAL_EVEN = 0x8E7C
+ MAX_PATCH_VERTICES = 0x8E7D
+ MAX_TESS_GEN_LEVEL = 0x8E7E
+ MAX_TESS_CONTROL_UNIFORM_COMPONENTS = 0x8E7F
+ MAX_TESS_EVALUATION_UNIFORM_COMPONENTS = 0x8E80
+ MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS = 0x8E81
+ MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS = 0x8E82
+ MAX_TESS_CONTROL_OUTPUT_COMPONENTS = 0x8E83
+ MAX_TESS_PATCH_COMPONENTS = 0x8E84
+ MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS = 0x8E85
+ MAX_TESS_EVALUATION_OUTPUT_COMPONENTS = 0x8E86
+ TESS_EVALUATION_SHADER = 0x8E87
+ TESS_CONTROL_SHADER = 0x8E88
+ MAX_TESS_CONTROL_UNIFORM_BLOCKS = 0x8E89
+ MAX_TESS_EVALUATION_UNIFORM_BLOCKS = 0x8E8A
+ COMPRESSED_RGBA_BPTC_UNORM = 0x8E8C
+ COMPRESSED_SRGB_ALPHA_BPTC_UNORM = 0x8E8D
+ COMPRESSED_RGB_BPTC_SIGNED_FLOAT = 0x8E8E
+ COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT = 0x8E8F
+ COPY_READ_BUFFER = 0x8F36
+ COPY_WRITE_BUFFER = 0x8F37
+ MAX_IMAGE_UNITS = 0x8F38
+ MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS = 0x8F39
+ MAX_COMBINED_SHADER_OUTPUT_RESOURCES = 0x8F39
+ IMAGE_BINDING_NAME = 0x8F3A
+ IMAGE_BINDING_LEVEL = 0x8F3B
+ IMAGE_BINDING_LAYERED = 0x8F3C
+ IMAGE_BINDING_LAYER = 0x8F3D
+ IMAGE_BINDING_ACCESS = 0x8F3E
+ DRAW_INDIRECT_BUFFER = 0x8F3F
+ DRAW_INDIRECT_BUFFER_BINDING = 0x8F43
+ DOUBLE_MAT2 = 0x8F46
+ DOUBLE_MAT3 = 0x8F47
+ DOUBLE_MAT4 = 0x8F48
+ DOUBLE_MAT2x3 = 0x8F49
+ DOUBLE_MAT2x4 = 0x8F4A
+ DOUBLE_MAT3x2 = 0x8F4B
+ DOUBLE_MAT3x4 = 0x8F4C
+ DOUBLE_MAT4x2 = 0x8F4D
+ DOUBLE_MAT4x3 = 0x8F4E
+ VERTEX_BINDING_BUFFER = 0x8F4F
+ R8_SNORM = 0x8F94
+ RG8_SNORM = 0x8F95
+ RGB8_SNORM = 0x8F96
+ RGBA8_SNORM = 0x8F97
+ R16_SNORM = 0x8F98
+ RG16_SNORM = 0x8F99
+ RGB16_SNORM = 0x8F9A
+ RGBA16_SNORM = 0x8F9B
+ SIGNED_NORMALIZED = 0x8F9C
+ PRIMITIVE_RESTART = 0x8F9D
+ PRIMITIVE_RESTART_INDEX = 0x8F9E
+ DOUBLE_VEC2 = 0x8FFC
+ DOUBLE_VEC3 = 0x8FFD
+ DOUBLE_VEC4 = 0x8FFE
+ TEXTURE_CUBE_MAP_ARRAY = 0x9009
+ TEXTURE_BINDING_CUBE_MAP_ARRAY = 0x900A
+ PROXY_TEXTURE_CUBE_MAP_ARRAY = 0x900B
+ SAMPLER_CUBE_MAP_ARRAY = 0x900C
+ SAMPLER_CUBE_MAP_ARRAY_SHADOW = 0x900D
+ INT_SAMPLER_CUBE_MAP_ARRAY = 0x900E
+ UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY = 0x900F
+ IMAGE_1D = 0x904C
+ IMAGE_2D = 0x904D
+ IMAGE_3D = 0x904E
+ IMAGE_2D_RECT = 0x904F
+ IMAGE_CUBE = 0x9050
+ IMAGE_BUFFER = 0x9051
+ IMAGE_1D_ARRAY = 0x9052
+ IMAGE_2D_ARRAY = 0x9053
+ IMAGE_CUBE_MAP_ARRAY = 0x9054
+ IMAGE_2D_MULTISAMPLE = 0x9055
+ IMAGE_2D_MULTISAMPLE_ARRAY = 0x9056
+ INT_IMAGE_1D = 0x9057
+ INT_IMAGE_2D = 0x9058
+ INT_IMAGE_3D = 0x9059
+ INT_IMAGE_2D_RECT = 0x905A
+ INT_IMAGE_CUBE = 0x905B
+ INT_IMAGE_BUFFER = 0x905C
+ INT_IMAGE_1D_ARRAY = 0x905D
+ INT_IMAGE_2D_ARRAY = 0x905E
+ INT_IMAGE_CUBE_MAP_ARRAY = 0x905F
+ INT_IMAGE_2D_MULTISAMPLE = 0x9060
+ INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x9061
+ UNSIGNED_INT_IMAGE_1D = 0x9062
+ UNSIGNED_INT_IMAGE_2D = 0x9063
+ UNSIGNED_INT_IMAGE_3D = 0x9064
+ UNSIGNED_INT_IMAGE_2D_RECT = 0x9065
+ UNSIGNED_INT_IMAGE_CUBE = 0x9066
+ UNSIGNED_INT_IMAGE_BUFFER = 0x9067
+ UNSIGNED_INT_IMAGE_1D_ARRAY = 0x9068
+ UNSIGNED_INT_IMAGE_2D_ARRAY = 0x9069
+ UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY = 0x906A
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE = 0x906B
+ UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY = 0x906C
+ MAX_IMAGE_SAMPLES = 0x906D
+ IMAGE_BINDING_FORMAT = 0x906E
+ RGB10_A2UI = 0x906F
+ MIN_MAP_BUFFER_ALIGNMENT = 0x90BC
+ IMAGE_FORMAT_COMPATIBILITY_TYPE = 0x90C7
+ IMAGE_FORMAT_COMPATIBILITY_BY_SIZE = 0x90C8
+ IMAGE_FORMAT_COMPATIBILITY_BY_CLASS = 0x90C9
+ MAX_VERTEX_IMAGE_UNIFORMS = 0x90CA
+ MAX_TESS_CONTROL_IMAGE_UNIFORMS = 0x90CB
+ MAX_TESS_EVALUATION_IMAGE_UNIFORMS = 0x90CC
+ MAX_GEOMETRY_IMAGE_UNIFORMS = 0x90CD
+ MAX_FRAGMENT_IMAGE_UNIFORMS = 0x90CE
+ MAX_COMBINED_IMAGE_UNIFORMS = 0x90CF
+ SHADER_STORAGE_BUFFER = 0x90D2
+ SHADER_STORAGE_BUFFER_BINDING = 0x90D3
+ SHADER_STORAGE_BUFFER_START = 0x90D4
+ SHADER_STORAGE_BUFFER_SIZE = 0x90D5
+ MAX_VERTEX_SHADER_STORAGE_BLOCKS = 0x90D6
+ MAX_GEOMETRY_SHADER_STORAGE_BLOCKS = 0x90D7
+ MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS = 0x90D8
+ MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS = 0x90D9
+ MAX_FRAGMENT_SHADER_STORAGE_BLOCKS = 0x90DA
+ MAX_COMPUTE_SHADER_STORAGE_BLOCKS = 0x90DB
+ MAX_COMBINED_SHADER_STORAGE_BLOCKS = 0x90DC
+ MAX_SHADER_STORAGE_BUFFER_BINDINGS = 0x90DD
+ MAX_SHADER_STORAGE_BLOCK_SIZE = 0x90DE
+ SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT = 0x90DF
+ DEPTH_STENCIL_TEXTURE_MODE = 0x90EA
+ MAX_COMPUTE_WORK_GROUP_INVOCATIONS = 0x90EB
+ UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER = 0x90EC
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER = 0x90ED
+ DISPATCH_INDIRECT_BUFFER = 0x90EE
+ DISPATCH_INDIRECT_BUFFER_BINDING = 0x90EF
+ TEXTURE_2D_MULTISAMPLE = 0x9100
+ PROXY_TEXTURE_2D_MULTISAMPLE = 0x9101
+ TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9102
+ PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY = 0x9103
+ TEXTURE_BINDING_2D_MULTISAMPLE = 0x9104
+ TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY = 0x9105
+ TEXTURE_SAMPLES = 0x9106
+ TEXTURE_FIXED_SAMPLE_LOCATIONS = 0x9107
+ SAMPLER_2D_MULTISAMPLE = 0x9108
+ INT_SAMPLER_2D_MULTISAMPLE = 0x9109
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE = 0x910A
+ SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910B
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910C
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY = 0x910D
+ MAX_COLOR_TEXTURE_SAMPLES = 0x910E
+ MAX_DEPTH_TEXTURE_SAMPLES = 0x910F
+ MAX_INTEGER_SAMPLES = 0x9110
+ MAX_SERVER_WAIT_TIMEOUT = 0x9111
+ OBJECT_TYPE = 0x9112
+ SYNC_CONDITION = 0x9113
+ SYNC_STATUS = 0x9114
+ SYNC_FLAGS = 0x9115
+ SYNC_FENCE = 0x9116
+ SYNC_GPU_COMMANDS_COMPLETE = 0x9117
+ UNSIGNALED = 0x9118
+ SIGNALED = 0x9119
+ ALREADY_SIGNALED = 0x911A
+ TIMEOUT_EXPIRED = 0x911B
+ CONDITION_SATISFIED = 0x911C
+ WAIT_FAILED = 0x911D
+ BUFFER_ACCESS_FLAGS = 0x911F
+ BUFFER_MAP_LENGTH = 0x9120
+ BUFFER_MAP_OFFSET = 0x9121
+ MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122
+ MAX_GEOMETRY_INPUT_COMPONENTS = 0x9123
+ MAX_GEOMETRY_OUTPUT_COMPONENTS = 0x9124
+ MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125
+ CONTEXT_PROFILE_MASK = 0x9126
+ UNPACK_COMPRESSED_BLOCK_WIDTH = 0x9127
+ UNPACK_COMPRESSED_BLOCK_HEIGHT = 0x9128
+ UNPACK_COMPRESSED_BLOCK_DEPTH = 0x9129
+ UNPACK_COMPRESSED_BLOCK_SIZE = 0x912A
+ PACK_COMPRESSED_BLOCK_WIDTH = 0x912B
+ PACK_COMPRESSED_BLOCK_HEIGHT = 0x912C
+ PACK_COMPRESSED_BLOCK_DEPTH = 0x912D
+ PACK_COMPRESSED_BLOCK_SIZE = 0x912E
+ TEXTURE_IMMUTABLE_FORMAT = 0x912F
+ MAX_DEBUG_MESSAGE_LENGTH = 0x9143
+ MAX_DEBUG_LOGGED_MESSAGES = 0x9144
+ DEBUG_LOGGED_MESSAGES = 0x9145
+ DEBUG_SEVERITY_HIGH = 0x9146
+ DEBUG_SEVERITY_MEDIUM = 0x9147
+ DEBUG_SEVERITY_LOW = 0x9148
+ TEXTURE_BUFFER_OFFSET = 0x919D
+ TEXTURE_BUFFER_SIZE = 0x919E
+ TEXTURE_BUFFER_OFFSET_ALIGNMENT = 0x919F
+ COMPUTE_SHADER = 0x91B9
+ MAX_COMPUTE_UNIFORM_BLOCKS = 0x91BB
+ MAX_COMPUTE_TEXTURE_IMAGE_UNITS = 0x91BC
+ MAX_COMPUTE_IMAGE_UNIFORMS = 0x91BD
+ MAX_COMPUTE_WORK_GROUP_COUNT = 0x91BE
+ MAX_COMPUTE_WORK_GROUP_SIZE = 0x91BF
+ COMPRESSED_R11_EAC = 0x9270
+ COMPRESSED_SIGNED_R11_EAC = 0x9271
+ COMPRESSED_RG11_EAC = 0x9272
+ COMPRESSED_SIGNED_RG11_EAC = 0x9273
+ COMPRESSED_RGB8_ETC2 = 0x9274
+ COMPRESSED_SRGB8_ETC2 = 0x9275
+ COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9276
+ COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = 0x9277
+ COMPRESSED_RGBA8_ETC2_EAC = 0x9278
+ COMPRESSED_SRGB8_ALPHA8_ETC2_EAC = 0x9279
+ ATOMIC_COUNTER_BUFFER = 0x92C0
+ ATOMIC_COUNTER_BUFFER_BINDING = 0x92C1
+ ATOMIC_COUNTER_BUFFER_START = 0x92C2
+ ATOMIC_COUNTER_BUFFER_SIZE = 0x92C3
+ ATOMIC_COUNTER_BUFFER_DATA_SIZE = 0x92C4
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS = 0x92C5
+ ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES = 0x92C6
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER = 0x92C7
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER = 0x92C8
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER = 0x92C9
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER = 0x92CA
+ ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER = 0x92CB
+ MAX_VERTEX_ATOMIC_COUNTER_BUFFERS = 0x92CC
+ MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS = 0x92CD
+ MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS = 0x92CE
+ MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS = 0x92CF
+ MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS = 0x92D0
+ MAX_COMBINED_ATOMIC_COUNTER_BUFFERS = 0x92D1
+ MAX_VERTEX_ATOMIC_COUNTERS = 0x92D2
+ MAX_TESS_CONTROL_ATOMIC_COUNTERS = 0x92D3
+ MAX_TESS_EVALUATION_ATOMIC_COUNTERS = 0x92D4
+ MAX_GEOMETRY_ATOMIC_COUNTERS = 0x92D5
+ MAX_FRAGMENT_ATOMIC_COUNTERS = 0x92D6
+ MAX_COMBINED_ATOMIC_COUNTERS = 0x92D7
+ MAX_ATOMIC_COUNTER_BUFFER_SIZE = 0x92D8
+ ACTIVE_ATOMIC_COUNTER_BUFFERS = 0x92D9
+ UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX = 0x92DA
+ UNSIGNED_INT_ATOMIC_COUNTER = 0x92DB
+ MAX_ATOMIC_COUNTER_BUFFER_BINDINGS = 0x92DC
+ DEBUG_OUTPUT = 0x92E0
+ UNIFORM = 0x92E1
+ UNIFORM_BLOCK = 0x92E2
+ PROGRAM_INPUT = 0x92E3
+ PROGRAM_OUTPUT = 0x92E4
+ BUFFER_VARIABLE = 0x92E5
+ SHADER_STORAGE_BLOCK = 0x92E6
+ IS_PER_PATCH = 0x92E7
+ VERTEX_SUBROUTINE = 0x92E8
+ TESS_CONTROL_SUBROUTINE = 0x92E9
+ TESS_EVALUATION_SUBROUTINE = 0x92EA
+ GEOMETRY_SUBROUTINE = 0x92EB
+ FRAGMENT_SUBROUTINE = 0x92EC
+ COMPUTE_SUBROUTINE = 0x92ED
+ VERTEX_SUBROUTINE_UNIFORM = 0x92EE
+ TESS_CONTROL_SUBROUTINE_UNIFORM = 0x92EF
+ TESS_EVALUATION_SUBROUTINE_UNIFORM = 0x92F0
+ GEOMETRY_SUBROUTINE_UNIFORM = 0x92F1
+ FRAGMENT_SUBROUTINE_UNIFORM = 0x92F2
+ COMPUTE_SUBROUTINE_UNIFORM = 0x92F3
+ TRANSFORM_FEEDBACK_VARYING = 0x92F4
+ ACTIVE_RESOURCES = 0x92F5
+ MAX_NAME_LENGTH = 0x92F6
+ MAX_NUM_ACTIVE_VARIABLES = 0x92F7
+ MAX_NUM_COMPATIBLE_SUBROUTINES = 0x92F8
+ NAME_LENGTH = 0x92F9
+ TYPE = 0x92FA
+ ARRAY_SIZE = 0x92FB
+ OFFSET = 0x92FC
+ BLOCK_INDEX = 0x92FD
+ ARRAY_STRIDE = 0x92FE
+ MATRIX_STRIDE = 0x92FF
+ IS_ROW_MAJOR = 0x9300
+ ATOMIC_COUNTER_BUFFER_INDEX = 0x9301
+ BUFFER_BINDING = 0x9302
+ BUFFER_DATA_SIZE = 0x9303
+ NUM_ACTIVE_VARIABLES = 0x9304
+ ACTIVE_VARIABLES = 0x9305
+ REFERENCED_BY_VERTEX_SHADER = 0x9306
+ REFERENCED_BY_TESS_CONTROL_SHADER = 0x9307
+ REFERENCED_BY_TESS_EVALUATION_SHADER = 0x9308
+ REFERENCED_BY_GEOMETRY_SHADER = 0x9309
+ REFERENCED_BY_FRAGMENT_SHADER = 0x930A
+ REFERENCED_BY_COMPUTE_SHADER = 0x930B
+ TOP_LEVEL_ARRAY_SIZE = 0x930C
+ TOP_LEVEL_ARRAY_STRIDE = 0x930D
+ LOCATION = 0x930E
+ LOCATION_INDEX = 0x930F
+ FRAMEBUFFER_DEFAULT_WIDTH = 0x9310
+ FRAMEBUFFER_DEFAULT_HEIGHT = 0x9311
+ FRAMEBUFFER_DEFAULT_LAYERS = 0x9312
+ FRAMEBUFFER_DEFAULT_SAMPLES = 0x9313
+ FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS = 0x9314
+ MAX_FRAMEBUFFER_WIDTH = 0x9315
+ MAX_FRAMEBUFFER_HEIGHT = 0x9316
+ MAX_FRAMEBUFFER_LAYERS = 0x9317
+ MAX_FRAMEBUFFER_SAMPLES = 0x9318
+ NUM_SAMPLE_COUNTS = 0x9380
+)
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gl4_3core_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// DepthRange specifies the mapping of depth values from normalized device
+// coordinates to window coordinates.
+//
+// Parameter nearVal specifies the mapping of the near clipping plane to window
+// coordinates (defaults to 0), while farVal specifies the mapping of the far
+// clipping plane to window coordinates (defaults to 1).
+//
+// After clipping and division by w, depth coordinates range from -1 to 1,
+// corresponding to the near and far clipping planes. DepthRange specifies a
+// linear mapping of the normalized depth coordinates in this range to window
+// depth coordinates. Regardless of the actual depth buffer implementation,
+// window coordinate depth values are treated as though they range from 0 through 1
+// (like color components). Thus, the values accepted by DepthRange are both
+// clamped to this range before they are accepted.
+//
+// The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+// With this mapping, the depth buffer range is fully utilized.
+//
+// It is not necessary that nearVal be less than farVal. Reverse mappings such as
+// nearVal 1, and farVal 0 are acceptable.
+//
+// GL.INVALID_OPERATION is generated if DepthRange is executed between the
+// execution of Begin and the corresponding execution of End.
+func (gl *GL) DepthRange(nearVal, farVal float64) {
+ C.gl4_3core_glDepthRange(gl.funcs, C.GLdouble(nearVal), C.GLdouble(farVal))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gl4_3core_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameteriv.xml
+func (gl *GL) GetTexLevelParameteriv(target glbase.Enum, level int, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetTexLevelParameteriv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexLevelParameterfv.xml
+func (gl *GL) GetTexLevelParameterfv(target glbase.Enum, level int, pname glbase.Enum, params []float32) {
+ C.gl4_3core_glGetTexLevelParameterfv(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3core_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexImage.xml
+func (gl *GL) GetTexImage(target glbase.Enum, level int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glGetTexImage(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gl4_3core_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gl4_3core_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublev.xml
+func (gl *GL) GetDoublev(pname glbase.Enum, params []float64) {
+ C.gl4_3core_glGetDoublev(gl.funcs, C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gl4_3core_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReadBuffer.xml
+func (gl *GL) ReadBuffer(mode glbase.Enum) {
+ C.gl4_3core_glReadBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gl4_3core_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPixelStoref.xml
+func (gl *GL) PixelStoref(pname glbase.Enum, param float32) {
+ C.gl4_3core_glPixelStoref(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gl4_3core_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gl4_3core_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_3core_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLogicOp.xml
+func (gl *GL) LogicOp(opcode glbase.Enum) {
+ C.gl4_3core_glLogicOp(gl.funcs, C.GLenum(opcode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gl4_3core_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gl4_3core_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gl4_3core_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gl4_3core_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gl4_3core_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gl4_3core_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gl4_3core_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gl4_3core_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepth.xml
+func (gl *GL) ClearDepth(depth float64) {
+ C.gl4_3core_glClearDepth(gl.funcs, C.GLdouble(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gl4_3core_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha float32) {
+ C.gl4_3core_glClearColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gl4_3core_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffer.xml
+func (gl *GL) DrawBuffer(mode glbase.Enum) {
+ C.gl4_3core_glDrawBuffer(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage1D.xml
+func (gl *GL) TexImage1D(target glbase.Enum, level int, internalFormat int32, width, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_3core_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gl4_3core_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gl4_3core_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gl4_3core_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonMode.xml
+func (gl *GL) PolygonMode(face, mode glbase.Enum) {
+ C.gl4_3core_glPolygonMode(gl.funcs, C.GLenum(face), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointSize.xml
+func (gl *GL) PointSize(size float32) {
+ C.gl4_3core_glPointSize(gl.funcs, C.GLfloat(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gl4_3core_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gl4_3core_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gl4_3core_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gl4_3core_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexubv.xml
+func (gl *GL) Indexubv(c []uint8) {
+ C.gl4_3core_glIndexubv(gl.funcs, (*C.GLubyte)(unsafe.Pointer(&c[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIndexub.xml
+func (gl *GL) Indexub(c uint8) {
+ C.gl4_3core_glIndexub(gl.funcs, C.GLubyte(c))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gl4_3core_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gl4_3core_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gl4_3core_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gl4_3core_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage1D.xml
+func (gl *GL) TexSubImage1D(target glbase.Enum, level, xoffset, width int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gl4_3core_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage1D.xml
+func (gl *GL) CopyTexSubImage1D(target glbase.Enum, level, xoffset, x, y, width int) {
+ C.gl4_3core_glCopyTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(x), C.GLint(y), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gl4_3core_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage1D.xml
+func (gl *GL) CopyTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, border int) {
+ C.gl4_3core_glCopyTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gl4_3core_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gl4_3core_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexSubImage3D.xml
+func (gl *GL) CopyTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, x, y, width, height int) {
+ C.gl4_3core_glCopyTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexSubImage3D.xml
+func (gl *GL) TexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3D.xml
+func (gl *GL) TexImage3D(target glbase.Enum, level int, internalFormat int32, width, height int, depth int32, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElements.xml
+func (gl *GL) DrawRangeElements(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawRangeElements(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gl4_3core_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha float32) {
+ C.gl4_3core_glBlendColor(gl.funcs, C.GLfloat(red), C.GLfloat(green), C.GLfloat(blue), C.GLfloat(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetCompressedTexImage.xml
+func (gl *GL) GetCompressedTexImage(target glbase.Enum, level int, img interface{}) {
+ var img_ptr unsafe.Pointer
+ var img_v = reflect.ValueOf(img)
+ if img != nil && img_v.Kind() != reflect.Slice {
+ panic("parameter img must be a slice")
+ }
+ if img != nil {
+ img_ptr = unsafe.Pointer(img_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glGetCompressedTexImage(gl.funcs, C.GLenum(target), C.GLint(level), img_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage1D.xml
+func (gl *GL) CompressedTexSubImage1D(target glbase.Enum, level, xoffset, width int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glCompressedTexSubImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLsizei(width), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexSubImage3D.xml
+func (gl *GL) CompressedTexSubImage3D(target glbase.Enum, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glCompressedTexSubImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage1D.xml
+func (gl *GL) CompressedTexImage1D(target glbase.Enum, level int, internalFormat glbase.Enum, width, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glCompressedTexImage1D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCompressedTexImage3D.xml
+func (gl *GL) CompressedTexImage3D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height int, depth int32, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glCompressedTexImage3D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value float32, invert bool) {
+ C.gl4_3core_glSampleCoverage(gl.funcs, C.GLfloat(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gl4_3core_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteriv.xml
+func (gl *GL) PointParameteriv(pname glbase.Enum, params []int32) {
+ C.gl4_3core_glPointParameteriv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameteri.xml
+func (gl *GL) PointParameteri(pname glbase.Enum, param int32) {
+ C.gl4_3core_glPointParameteri(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterfv.xml
+func (gl *GL) PointParameterfv(pname glbase.Enum, params []float32) {
+ C.gl4_3core_glPointParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPointParameterf.xml
+func (gl *GL) PointParameterf(pname glbase.Enum, param float32) {
+ C.gl4_3core_glPointParameterf(gl.funcs, C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArrays.xml
+func (gl *GL) MultiDrawArrays(mode glbase.Enum, first, count []int, drawcount int32) {
+ C.gl4_3core_glMultiDrawArrays(gl.funcs, C.GLenum(mode), (*C.GLint)(unsafe.Pointer(&first[0])), (*C.GLsizei)(unsafe.Pointer(&count[0])), C.GLsizei(drawcount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha glbase.Enum) {
+ C.gl4_3core_glBlendFuncSeparate(gl.funcs, C.GLenum(sfactorRGB), C.GLenum(dfactorRGB), C.GLenum(sfactorAlpha), C.GLenum(dfactorAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUnmapBuffer.xml
+func (gl *GL) UnmapBuffer(target glbase.Enum) bool {
+ glresult := C.gl4_3core_glUnmapBuffer(gl.funcs, C.GLenum(target))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferSubData.xml
+func (gl *GL) GetBufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glGetBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gl4_3core_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gl4_3core_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gl4_3core_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_3core_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_3core_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectuiv.xml
+func (gl *GL) GetQueryObjectuiv(id uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_3core_glGetQueryObjectuiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectiv.xml
+func (gl *GL) GetQueryObjectiv(id uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetQueryObjectiv(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryiv.xml
+func (gl *GL) GetQueryiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetQueryiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQuery.xml
+func (gl *GL) EndQuery(target glbase.Enum) {
+ C.gl4_3core_glEndQuery(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQuery.xml
+func (gl *GL) BeginQuery(target glbase.Enum, id uint32) {
+ C.gl4_3core_glBeginQuery(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsQuery.xml
+func (gl *GL) IsQuery(id uint32) bool {
+ glresult := C.gl4_3core_glIsQuery(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteQueries.xml
+func (gl *GL) DeleteQueries(n int, ids []uint32) {
+ C.gl4_3core_glDeleteQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenQueries.xml
+func (gl *GL) GenQueries(n int, ids []uint32) {
+ C.gl4_3core_glGenQueries(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gl4_3core_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gl4_3core_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gl4_3core_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gl4_3core_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gl4_3core_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gl4_3core_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gl4_3core_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gl4_3core_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_3core_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gl4_3core_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gl4_3core_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gl4_3core_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_3core_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_3core_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_3core_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gl4_3core_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gl4_3core_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_3core_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_3core_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gl4_3core_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gl4_3core_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gl4_3core_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gl4_3core_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gl4_3core_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gl4_3core_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gl4_3core_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_3core_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gl4_3core_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribdv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribdv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ var params_c [4]float64
+ C.gl4_3core_glGetVertexAttribdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gl4_3core_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gl4_3core_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_3core_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gl4_3core_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_3core_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_3core_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gl4_3core_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gl4_3core_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gl4_3core_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxCount int32, count []int, obj []uint32) {
+ C.gl4_3core_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxCount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&obj[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_3core_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_3core_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_3core_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gl4_3core_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_3core_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gl4_3core_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gl4_3core_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gl4_3core_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gl4_3core_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gl4_3core_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gl4_3core_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gl4_3core_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gl4_3core_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gl4_3core_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, sfail, dpfail, dppass glbase.Enum) {
+ C.gl4_3core_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(sfail), C.GLenum(dpfail), C.GLenum(dppass))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawBuffers.xml
+func (gl *GL) DrawBuffers(n int, bufs []glbase.Enum) {
+ C.gl4_3core_glDrawBuffers(gl.funcs, C.GLsizei(n), (*C.GLenum)(unsafe.Pointer(&bufs[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_3core_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// UniformMatrix4x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*3) != 0 {
+ panic("invalid value length for UniformMatrix4x3fv")
+ }
+ count := len(value) / (4 * 3)
+ C.gl4_3core_glUniformMatrix4x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*4) != 0 {
+ panic("invalid value length for UniformMatrix3x4fv")
+ }
+ count := len(value) / (3 * 4)
+ C.gl4_3core_glUniformMatrix3x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*2) != 0 {
+ panic("invalid value length for UniformMatrix4x2fv")
+ }
+ count := len(value) / (4 * 2)
+ C.gl4_3core_glUniformMatrix4x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*4) != 0 {
+ panic("invalid value length for UniformMatrix2x4fv")
+ }
+ count := len(value) / (2 * 4)
+ C.gl4_3core_glUniformMatrix2x4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3x2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3x2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3x2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*2) != 0 {
+ panic("invalid value length for UniformMatrix3x2fv")
+ }
+ count := len(value) / (3 * 2)
+ C.gl4_3core_glUniformMatrix3x2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2x3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2x3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2x3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*3) != 0 {
+ panic("invalid value length for UniformMatrix2x3fv")
+ }
+ count := len(value) / (2 * 3)
+ C.gl4_3core_glUniformMatrix2x3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsVertexArray.xml
+func (gl *GL) IsVertexArray(array uint32) bool {
+ glresult := C.gl4_3core_glIsVertexArray(gl.funcs, C.GLuint(array))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenVertexArrays.xml
+func (gl *GL) GenVertexArrays(n int, arrays []uint32) {
+ C.gl4_3core_glGenVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteVertexArrays.xml
+func (gl *GL) DeleteVertexArrays(n int, arrays []uint32) {
+ C.gl4_3core_glDeleteVertexArrays(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&arrays[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexArray.xml
+func (gl *GL) BindVertexArray(array uint32) {
+ C.gl4_3core_glBindVertexArray(gl.funcs, C.GLuint(array))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFlushMappedBufferRange.xml
+func (gl *GL) FlushMappedBufferRange(target glbase.Enum, offset, length int) {
+ C.gl4_3core_glFlushMappedBufferRange(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTextureLayer.xml
+func (gl *GL) FramebufferTextureLayer(target, attachment glbase.Enum, texture glbase.Texture, level int, layer int32) {
+ C.gl4_3core_glFramebufferTextureLayer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level), C.GLint(layer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorageMultisample.xml
+func (gl *GL) RenderbufferStorageMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_3core_glRenderbufferStorageMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlitFramebuffer.xml
+func (gl *GL) BlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1 int32, mask glbase.Bitfield, filter glbase.Enum) {
+ C.gl4_3core_glBlitFramebuffer(gl.funcs, C.GLint(srcX0), C.GLint(srcY0), C.GLint(srcX1), C.GLint(srcY1), C.GLint(dstX0), C.GLint(dstY0), C.GLint(dstX1), C.GLint(dstY1), C.GLbitfield(mask), C.GLenum(filter))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gl4_3core_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_3core_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture3D.xml
+func (gl *GL) FramebufferTexture3D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int, zoffset int32) {
+ C.gl4_3core_glFramebufferTexture3D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level), C.GLint(zoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_3core_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture1D.xml
+func (gl *GL) FramebufferTexture1D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_3core_glFramebufferTexture1D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gl4_3core_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gl4_3core_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_3core_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gl4_3core_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gl4_3core_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gl4_3core_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gl4_3core_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gl4_3core_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gl4_3core_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gl4_3core_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfi.xml
+func (gl *GL) ClearBufferfi(buffer glbase.Enum, drawbuffer int32, depth float32, stencil int32) {
+ C.gl4_3core_glClearBufferfi(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), C.GLfloat(depth), C.GLint(stencil))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferfv.xml
+func (gl *GL) ClearBufferfv(buffer glbase.Enum, drawbuffer int32, value []float32) {
+ C.gl4_3core_glClearBufferfv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferuiv.xml
+func (gl *GL) ClearBufferuiv(buffer glbase.Enum, drawbuffer int32, value []uint32) {
+ C.gl4_3core_glClearBufferuiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferiv.xml
+func (gl *GL) ClearBufferiv(buffer glbase.Enum, drawbuffer int32, value []int32) {
+ C.gl4_3core_glClearBufferiv(gl.funcs, C.GLenum(buffer), C.GLint(drawbuffer), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIuiv.xml
+func (gl *GL) GetTexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_3core_glGetTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTexParameterIiv.xml
+func (gl *GL) GetTexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIuiv.xml
+func (gl *GL) TexParameterIuiv(target, pname glbase.Enum, params []uint32) {
+ C.gl4_3core_glTexParameterIuiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexParameterIiv.xml
+func (gl *GL) TexParameterIiv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glTexParameterIiv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// Uniform4uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4uiv")
+ }
+ count := len(value) / 4
+ C.gl4_3core_glUniform4uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3uiv")
+ }
+ count := len(value) / 3
+ C.gl4_3core_glUniform3uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2uiv")
+ }
+ count := len(value) / 2
+ C.gl4_3core_glUniform2uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1uiv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1uiv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1uiv(location glbase.Uniform, value []uint32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gl4_3core_glUniform1uiv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4ui(location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_3core_glUniform4ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// Uniform3ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3ui(location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_3core_glUniform3ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// Uniform2ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2ui(location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_3core_glUniform2ui(gl.funcs, C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// Uniform1ui modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1ui operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1ui(location glbase.Uniform, v0 uint32) {
+ C.gl4_3core_glUniform1ui(gl.funcs, C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataLocation.xml
+func (gl *GL) GetFragDataLocation(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_3core_glGetFragDataLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocation.xml
+func (gl *GL) BindFragDataLocation(program glbase.Program, color uint32, name []byte) {
+ C.gl4_3core_glBindFragDataLocation(gl.funcs, C.GLuint(program), C.GLuint(color), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformuiv.xml
+func (gl *GL) GetUniformuiv(program glbase.Program, location glbase.Uniform, params []uint32) {
+ C.gl4_3core_glGetUniformuiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIuiv.xml
+func (gl *GL) GetVertexAttribIuiv(index glbase.Attrib, pname glbase.Enum, params []uint32) {
+ C.gl4_3core_glGetVertexAttribIuiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribIiv.xml
+func (gl *GL) GetVertexAttribIiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetVertexAttribIiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIPointer.xml
+func (gl *GL) VertexAttribIPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glVertexAttribIPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndConditionalRender.xml
+func (gl *GL) EndConditionalRender() {
+ C.gl4_3core_glEndConditionalRender(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginConditionalRender.xml
+func (gl *GL) BeginConditionalRender(id uint32, mode glbase.Enum) {
+ C.gl4_3core_glBeginConditionalRender(gl.funcs, C.GLuint(id), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClampColor.xml
+func (gl *GL) ClampColor(target, clamp glbase.Enum) {
+ C.gl4_3core_glClampColor(gl.funcs, C.GLenum(target), C.GLenum(clamp))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetTransformFeedbackVarying.xml
+func (gl *GL) GetTransformFeedbackVarying(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gl4_3core_glGetTransformFeedbackVarying(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLsizei)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferBase.xml
+func (gl *GL) BindBufferBase(target glbase.Enum, index uint32, buffer glbase.Buffer) {
+ C.gl4_3core_glBindBufferBase(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindBufferRange.xml
+func (gl *GL) BindBufferRange(target glbase.Enum, index uint32, buffer glbase.Buffer, offset, size int) {
+ C.gl4_3core_glBindBufferRange(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndTransformFeedback.xml
+func (gl *GL) EndTransformFeedback() {
+ C.gl4_3core_glEndTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginTransformFeedback.xml
+func (gl *GL) BeginTransformFeedback(primitiveMode glbase.Enum) {
+ C.gl4_3core_glBeginTransformFeedback(gl.funcs, C.GLenum(primitiveMode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsEnabledi.xml
+func (gl *GL) IsEnabledi(target glbase.Enum, index uint32) bool {
+ glresult := C.gl4_3core_glIsEnabledi(gl.funcs, C.GLenum(target), C.GLuint(index))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDisablei.xml
+func (gl *GL) Disablei(target glbase.Enum, index uint32) {
+ C.gl4_3core_glDisablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEnablei.xml
+func (gl *GL) Enablei(target glbase.Enum, index uint32) {
+ C.gl4_3core_glEnablei(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetIntegeri_v.xml
+func (gl *GL) GetIntegeri_v(target glbase.Enum, index uint32, data []int32) {
+ C.gl4_3core_glGetIntegeri_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBooleani_v.xml
+func (gl *GL) GetBooleani_v(target glbase.Enum, index uint32, data []bool) {
+ C.gl4_3core_glGetBooleani_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLboolean)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorMaski.xml
+func (gl *GL) ColorMaski(index uint32, r, g, b, a bool) {
+ C.gl4_3core_glColorMaski(gl.funcs, C.GLuint(index), *(*C.GLboolean)(unsafe.Pointer(&r)), *(*C.GLboolean)(unsafe.Pointer(&g)), *(*C.GLboolean)(unsafe.Pointer(&b)), *(*C.GLboolean)(unsafe.Pointer(&a)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyBufferSubData.xml
+func (gl *GL) CopyBufferSubData(readTarget, writeTarget glbase.Enum, readOffset, writeOffset, size int) {
+ C.gl4_3core_glCopyBufferSubData(gl.funcs, C.GLenum(readTarget), C.GLenum(writeTarget), C.GLintptr(readOffset), C.GLintptr(writeOffset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformBlockBinding.xml
+func (gl *GL) UniformBlockBinding(program glbase.Program, v0, v1 uint32) {
+ C.gl4_3core_glUniformBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockName.xml
+func (gl *GL) GetActiveUniformBlockName(program glbase.Program, uniformBlockIndex uint32, bufSize int32, length []int32, uniformBlockName []byte) {
+ C.gl4_3core_glGetActiveUniformBlockName(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformBlockiv.xml
+func (gl *GL) GetActiveUniformBlockiv(program glbase.Program, uniformBlockIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetActiveUniformBlockiv(gl.funcs, C.GLuint(program), C.GLuint(uniformBlockIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformBlockIndex.xml
+func (gl *GL) GetUniformBlockIndex(program glbase.Program, uniformBlockName []byte) uint32 {
+ glresult := C.gl4_3core_glGetUniformBlockIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&uniformBlockName[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformName.xml
+func (gl *GL) GetActiveUniformName(program glbase.Program, uniformIndex uint32, bufSize int32, length []int32, uniformName []byte) {
+ C.gl4_3core_glGetActiveUniformName(gl.funcs, C.GLuint(program), C.GLuint(uniformIndex), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&uniformName[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveUniformsiv.xml
+func (gl *GL) GetActiveUniformsiv(program glbase.Program, uniformCount int32, uniformIndices []uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetActiveUniformsiv(gl.funcs, C.GLuint(program), C.GLsizei(uniformCount), (*C.GLuint)(unsafe.Pointer(&uniformIndices[0])), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPrimitiveRestartIndex.xml
+func (gl *GL) PrimitiveRestartIndex(index uint32) {
+ C.gl4_3core_glPrimitiveRestartIndex(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBuffer.xml
+func (gl *GL) TexBuffer(target, internalFormat glbase.Enum, buffer glbase.Buffer) {
+ C.gl4_3core_glTexBuffer(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstanced.xml
+func (gl *GL) DrawElementsInstanced(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawElementsInstanced(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstanced.xml
+func (gl *GL) DrawArraysInstanced(mode glbase.Enum, first, count int, instancecount int32) {
+ C.gl4_3core_glDrawArraysInstanced(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSampleMaski.xml
+func (gl *GL) SampleMaski(index uint32, mask glbase.Bitfield) {
+ C.gl4_3core_glSampleMaski(gl.funcs, C.GLuint(index), C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetMultisamplefv.xml
+func (gl *GL) GetMultisamplefv(pname glbase.Enum, index uint32, val []float32) {
+ C.gl4_3core_glGetMultisamplefv(gl.funcs, C.GLenum(pname), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&val[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage3DMultisample.xml
+func (gl *GL) TexImage3DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_3core_glTexImage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexImage2DMultisample.xml
+func (gl *GL) TexImage2DMultisample(target glbase.Enum, samples, internalFormat int32, width, height int, fixedsamplelocations bool) {
+ C.gl4_3core_glTexImage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSynciv.xml
+func (gl *GL) GetSynciv(sync glbase.Sync, pname glbase.Enum, bufSize int32, length, values []int32) {
+ C.gl4_3core_glGetSynciv(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64v.xml
+func (gl *GL) GetInteger64v(pname glbase.Enum, params []int64) {
+ C.gl4_3core_glGetInteger64v(gl.funcs, C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glWaitSync.xml
+func (gl *GL) WaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) {
+ C.gl4_3core_glWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClientWaitSync.xml
+func (gl *GL) ClientWaitSync(sync glbase.Sync, flags glbase.Bitfield, timeout uint64) glbase.Enum {
+ glresult := C.gl4_3core_glClientWaitSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)), C.GLbitfield(flags), C.GLuint64(timeout))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSync.xml
+func (gl *GL) DeleteSync(sync glbase.Sync) {
+ C.gl4_3core_glDeleteSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSync.xml
+func (gl *GL) IsSync(sync glbase.Sync) bool {
+ glresult := C.gl4_3core_glIsSync(gl.funcs, C.GLsync(unsafe.Pointer(sync)))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFenceSync.xml
+func (gl *GL) FenceSync(condition glbase.Enum, flags glbase.Bitfield) glbase.Sync {
+ glresult := C.gl4_3core_glFenceSync(gl.funcs, C.GLenum(condition), C.GLbitfield(flags))
+ return glbase.Sync(unsafe.Pointer(glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProvokingVertex.xml
+func (gl *GL) ProvokingVertex(mode glbase.Enum) {
+ C.gl4_3core_glProvokingVertex(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertex.xml
+func (gl *GL) DrawElementsInstancedBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawElementsInstancedBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawRangeElementsBaseVertex.xml
+func (gl *GL) DrawRangeElementsBaseVertex(mode glbase.Enum, start, end uint32, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawRangeElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLuint(start), C.GLuint(end), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsBaseVertex.xml
+func (gl *GL) DrawElementsBaseVertex(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, basevertex int32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawElementsBaseVertex(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLint(basevertex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferTexture.xml
+func (gl *GL) FramebufferTexture(target, attachment glbase.Enum, texture glbase.Texture, level int) {
+ C.gl4_3core_glFramebufferTexture(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetBufferParameteri64v.xml
+func (gl *GL) GetBufferParameteri64v(target, pname glbase.Enum, params []int64) {
+ C.gl4_3core_glGetBufferParameteri64v(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInteger64i_v.xml
+func (gl *GL) GetInteger64i_v(target glbase.Enum, index uint32, data []int64) {
+ C.gl4_3core_glGetInteger64i_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLint64)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4uiv.xml
+func (gl *GL) VertexAttribP4uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_3core_glVertexAttribP4uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP4ui.xml
+func (gl *GL) VertexAttribP4ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_3core_glVertexAttribP4ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3uiv.xml
+func (gl *GL) VertexAttribP3uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_3core_glVertexAttribP3uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP3ui.xml
+func (gl *GL) VertexAttribP3ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_3core_glVertexAttribP3ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2uiv.xml
+func (gl *GL) VertexAttribP2uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_3core_glVertexAttribP2uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP2ui.xml
+func (gl *GL) VertexAttribP2ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_3core_glVertexAttribP2ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1uiv.xml
+func (gl *GL) VertexAttribP1uiv(index glbase.Attrib, gltype glbase.Enum, normalized bool, value []uint32) {
+ C.gl4_3core_glVertexAttribP1uiv(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribP1ui.xml
+func (gl *GL) VertexAttribP1ui(index glbase.Attrib, gltype glbase.Enum, normalized bool, value uint32) {
+ C.gl4_3core_glVertexAttribP1ui(gl.funcs, C.GLuint(index), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3uiv.xml
+func (gl *GL) SecondaryColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_3core_glSecondaryColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSecondaryColorP3ui.xml
+func (gl *GL) SecondaryColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_3core_glSecondaryColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4uiv.xml
+func (gl *GL) ColorP4uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_3core_glColorP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP4ui.xml
+func (gl *GL) ColorP4ui(gltype glbase.Enum, color uint32) {
+ C.gl4_3core_glColorP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3uiv.xml
+func (gl *GL) ColorP3uiv(gltype glbase.Enum, color []uint32) {
+ C.gl4_3core_glColorP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&color[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glColorP3ui.xml
+func (gl *GL) ColorP3ui(gltype glbase.Enum, color uint32) {
+ C.gl4_3core_glColorP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(color))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3uiv.xml
+func (gl *GL) NormalP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3core_glNormalP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glNormalP3ui.xml
+func (gl *GL) NormalP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3core_glNormalP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4uiv.xml
+func (gl *GL) MultiTexCoordP4uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_3core_glMultiTexCoordP4uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP4ui.xml
+func (gl *GL) MultiTexCoordP4ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_3core_glMultiTexCoordP4ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3uiv.xml
+func (gl *GL) MultiTexCoordP3uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_3core_glMultiTexCoordP3uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP3ui.xml
+func (gl *GL) MultiTexCoordP3ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_3core_glMultiTexCoordP3ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2uiv.xml
+func (gl *GL) MultiTexCoordP2uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_3core_glMultiTexCoordP2uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP2ui.xml
+func (gl *GL) MultiTexCoordP2ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_3core_glMultiTexCoordP2ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1uiv.xml
+func (gl *GL) MultiTexCoordP1uiv(texture, gltype glbase.Enum, coords []uint32) {
+ C.gl4_3core_glMultiTexCoordP1uiv(gl.funcs, C.GLenum(texture), C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiTexCoordP1ui.xml
+func (gl *GL) MultiTexCoordP1ui(texture, gltype glbase.Enum, coords uint32) {
+ C.gl4_3core_glMultiTexCoordP1ui(gl.funcs, C.GLenum(texture), C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4uiv.xml
+func (gl *GL) TexCoordP4uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3core_glTexCoordP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP4ui.xml
+func (gl *GL) TexCoordP4ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3core_glTexCoordP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3uiv.xml
+func (gl *GL) TexCoordP3uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3core_glTexCoordP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP3ui.xml
+func (gl *GL) TexCoordP3ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3core_glTexCoordP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2uiv.xml
+func (gl *GL) TexCoordP2uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3core_glTexCoordP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP2ui.xml
+func (gl *GL) TexCoordP2ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3core_glTexCoordP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1uiv.xml
+func (gl *GL) TexCoordP1uiv(gltype glbase.Enum, coords []uint32) {
+ C.gl4_3core_glTexCoordP1uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&coords[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexCoordP1ui.xml
+func (gl *GL) TexCoordP1ui(gltype glbase.Enum, coords uint32) {
+ C.gl4_3core_glTexCoordP1ui(gl.funcs, C.GLenum(gltype), C.GLuint(coords))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4uiv.xml
+func (gl *GL) VertexP4uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_3core_glVertexP4uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP4ui.xml
+func (gl *GL) VertexP4ui(gltype glbase.Enum, value uint32) {
+ C.gl4_3core_glVertexP4ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3uiv.xml
+func (gl *GL) VertexP3uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_3core_glVertexP3uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP3ui.xml
+func (gl *GL) VertexP3ui(gltype glbase.Enum, value uint32) {
+ C.gl4_3core_glVertexP3ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2uiv.xml
+func (gl *GL) VertexP2uiv(gltype glbase.Enum, value []uint32) {
+ C.gl4_3core_glVertexP2uiv(gl.funcs, C.GLenum(gltype), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexP2ui.xml
+func (gl *GL) VertexP2ui(gltype glbase.Enum, value uint32) {
+ C.gl4_3core_glVertexP2ui(gl.funcs, C.GLenum(gltype), C.GLuint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjectui64v.xml
+func (gl *GL) GetQueryObjectui64v(id uint32, pname glbase.Enum, params []uint64) {
+ C.gl4_3core_glGetQueryObjectui64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLuint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryObjecti64v.xml
+func (gl *GL) GetQueryObjecti64v(id uint32, pname glbase.Enum, params []int64) {
+ C.gl4_3core_glGetQueryObjecti64v(gl.funcs, C.GLuint(id), C.GLenum(pname), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glQueryCounter.xml
+func (gl *GL) QueryCounter(id uint32, target glbase.Enum) {
+ C.gl4_3core_glQueryCounter(gl.funcs, C.GLuint(id), C.GLenum(target))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIuiv.xml
+func (gl *GL) GetSamplerParameterIuiv(sampler uint32, pname glbase.Enum, params []uint32) {
+ C.gl4_3core_glGetSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterfv.xml
+func (gl *GL) GetSamplerParameterfv(sampler uint32, pname glbase.Enum, params []float32) {
+ C.gl4_3core_glGetSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameterIiv.xml
+func (gl *GL) GetSamplerParameterIiv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSamplerParameteriv.xml
+func (gl *GL) GetSamplerParameteriv(sampler uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIuiv.xml
+func (gl *GL) SamplerParameterIuiv(sampler uint32, pname glbase.Enum, param []uint32) {
+ C.gl4_3core_glSamplerParameterIuiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLuint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterIiv.xml
+func (gl *GL) SamplerParameterIiv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_3core_glSamplerParameterIiv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterfv.xml
+func (gl *GL) SamplerParameterfv(sampler uint32, pname glbase.Enum, param []float32) {
+ C.gl4_3core_glSamplerParameterfv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameterf.xml
+func (gl *GL) SamplerParameterf(sampler uint32, pname glbase.Enum, param float32) {
+ C.gl4_3core_glSamplerParameterf(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteriv.xml
+func (gl *GL) SamplerParameteriv(sampler uint32, pname glbase.Enum, param []int32) {
+ C.gl4_3core_glSamplerParameteriv(gl.funcs, C.GLuint(sampler), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&param[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glSamplerParameteri.xml
+func (gl *GL) SamplerParameteri(sampler uint32, pname glbase.Enum, param int32) {
+ C.gl4_3core_glSamplerParameteri(gl.funcs, C.GLuint(sampler), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindSampler.xml
+func (gl *GL) BindSampler(unit, sampler uint32) {
+ C.gl4_3core_glBindSampler(gl.funcs, C.GLuint(unit), C.GLuint(sampler))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsSampler.xml
+func (gl *GL) IsSampler(sampler uint32) bool {
+ glresult := C.gl4_3core_glIsSampler(gl.funcs, C.GLuint(sampler))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteSamplers.xml
+func (gl *GL) DeleteSamplers(count int, samplers []uint32) {
+ C.gl4_3core_glDeleteSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenSamplers.xml
+func (gl *GL) GenSamplers(count int, samplers []uint32) {
+ C.gl4_3core_glGenSamplers(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&samplers[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFragDataIndex.xml
+func (gl *GL) GetFragDataIndex(program glbase.Program, name []byte) int32 {
+ glresult := C.gl4_3core_glGetFragDataIndex(gl.funcs, C.GLuint(program), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindFragDataLocationIndexed.xml
+func (gl *GL) BindFragDataLocationIndexed(program glbase.Program, colorNumber, index uint32, name []byte) {
+ C.gl4_3core_glBindFragDataLocationIndexed(gl.funcs, C.GLuint(program), C.GLuint(colorNumber), C.GLuint(index), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribDivisor.xml
+func (gl *GL) VertexAttribDivisor(index glbase.Attrib, divisor uint32) {
+ C.gl4_3core_glVertexAttribDivisor(gl.funcs, C.GLuint(index), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetQueryIndexediv.xml
+func (gl *GL) GetQueryIndexediv(target glbase.Enum, index uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetQueryIndexediv(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glEndQueryIndexed.xml
+func (gl *GL) EndQueryIndexed(target glbase.Enum, index uint32) {
+ C.gl4_3core_glEndQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBeginQueryIndexed.xml
+func (gl *GL) BeginQueryIndexed(target glbase.Enum, index, id uint32) {
+ C.gl4_3core_glBeginQueryIndexed(gl.funcs, C.GLenum(target), C.GLuint(index), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStream.xml
+func (gl *GL) DrawTransformFeedbackStream(mode glbase.Enum, id, stream uint32) {
+ C.gl4_3core_glDrawTransformFeedbackStream(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedback.xml
+func (gl *GL) DrawTransformFeedback(mode glbase.Enum, id uint32) {
+ C.gl4_3core_glDrawTransformFeedback(gl.funcs, C.GLenum(mode), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glResumeTransformFeedback.xml
+func (gl *GL) ResumeTransformFeedback() {
+ C.gl4_3core_glResumeTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPauseTransformFeedback.xml
+func (gl *GL) PauseTransformFeedback() {
+ C.gl4_3core_glPauseTransformFeedback(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsTransformFeedback.xml
+func (gl *GL) IsTransformFeedback(id uint32) bool {
+ glresult := C.gl4_3core_glIsTransformFeedback(gl.funcs, C.GLuint(id))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenTransformFeedbacks.xml
+func (gl *GL) GenTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_3core_glGenTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteTransformFeedbacks.xml
+func (gl *GL) DeleteTransformFeedbacks(n int, ids []uint32) {
+ C.gl4_3core_glDeleteTransformFeedbacks(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&ids[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindTransformFeedback.xml
+func (gl *GL) BindTransformFeedback(target glbase.Enum, id uint32) {
+ C.gl4_3core_glBindTransformFeedback(gl.funcs, C.GLenum(target), C.GLuint(id))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameterfv.xml
+func (gl *GL) PatchParameterfv(pname glbase.Enum, values []float32) {
+ C.gl4_3core_glPatchParameterfv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glPatchParameteri.xml
+func (gl *GL) PatchParameteri(pname glbase.Enum, value int32) {
+ C.gl4_3core_glPatchParameteri(gl.funcs, C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramStageiv.xml
+func (gl *GL) GetProgramStageiv(program glbase.Program, shadertype, pname glbase.Enum, values []int32) {
+ C.gl4_3core_glGetProgramStageiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformSubroutineuiv.xml
+func (gl *GL) GetUniformSubroutineuiv(shadertype glbase.Enum, location glbase.Uniform, params []uint32) {
+ C.gl4_3core_glGetUniformSubroutineuiv(gl.funcs, C.GLenum(shadertype), C.GLint(location), (*C.GLuint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformSubroutinesuiv.xml
+func (gl *GL) UniformSubroutinesuiv(shadertype glbase.Enum, count int, value []uint32) {
+ C.gl4_3core_glUniformSubroutinesuiv(gl.funcs, C.GLenum(shadertype), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineName.xml
+func (gl *GL) GetActiveSubroutineName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_3core_glGetActiveSubroutineName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformName.xml
+func (gl *GL) GetActiveSubroutineUniformName(program glbase.Program, shadertype glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_3core_glGetActiveSubroutineUniformName(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveSubroutineUniformiv.xml
+func (gl *GL) GetActiveSubroutineUniformiv(program glbase.Program, shadertype glbase.Enum, index uint32, pname glbase.Enum, values []int32) {
+ C.gl4_3core_glGetActiveSubroutineUniformiv(gl.funcs, C.GLuint(program), C.GLenum(shadertype), C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineIndex.xml
+func (gl *GL) GetSubroutineIndex(program glbase.Program, shadertype glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_3core_glGetSubroutineIndex(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetSubroutineUniformLocation.xml
+func (gl *GL) GetSubroutineUniformLocation(program glbase.Program, shadertype glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_3core_glGetSubroutineUniformLocation(gl.funcs, C.GLuint(program), C.GLenum(shadertype), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetUniformdv.xml
+func (gl *GL) GetUniformdv(program glbase.Program, location glbase.Uniform, params []float64) {
+ C.gl4_3core_glGetUniformdv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x3dv.xml
+func (gl *GL) UniformMatrix4x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3core_glUniformMatrix4x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4x2dv.xml
+func (gl *GL) UniformMatrix4x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3core_glUniformMatrix4x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x4dv.xml
+func (gl *GL) UniformMatrix3x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3core_glUniformMatrix3x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3x2dv.xml
+func (gl *GL) UniformMatrix3x2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3core_glUniformMatrix3x2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x4dv.xml
+func (gl *GL) UniformMatrix2x4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3core_glUniformMatrix2x4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2x3dv.xml
+func (gl *GL) UniformMatrix2x3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3core_glUniformMatrix2x3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix4dv.xml
+func (gl *GL) UniformMatrix4dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3core_glUniformMatrix4dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix3dv.xml
+func (gl *GL) UniformMatrix3dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3core_glUniformMatrix3dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniformMatrix2dv.xml
+func (gl *GL) UniformMatrix2dv(location glbase.Uniform, count int, transpose bool, value []float64) {
+ C.gl4_3core_glUniformMatrix2dv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4dv.xml
+func (gl *GL) Uniform4dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_3core_glUniform4dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3dv.xml
+func (gl *GL) Uniform3dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_3core_glUniform3dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2dv.xml
+func (gl *GL) Uniform2dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_3core_glUniform2dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1dv.xml
+func (gl *GL) Uniform1dv(location glbase.Uniform, count int, value []float64) {
+ C.gl4_3core_glUniform1dv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform4d.xml
+func (gl *GL) Uniform4d(location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_3core_glUniform4d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform3d.xml
+func (gl *GL) Uniform3d(location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_3core_glUniform3d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform2d.xml
+func (gl *GL) Uniform2d(location glbase.Uniform, v0, v1 float64) {
+ C.gl4_3core_glUniform2d(gl.funcs, C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUniform1d.xml
+func (gl *GL) Uniform1d(location glbase.Uniform, v0 float64) {
+ C.gl4_3core_glUniform1d(gl.funcs, C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsIndirect.xml
+func (gl *GL) DrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysIndirect.xml
+func (gl *GL) DrawArraysIndirect(mode glbase.Enum, indirect interface{}) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFuncSeparatei.xml
+func (gl *GL) BlendFuncSeparatei(buf uint32, srcRGB, dstRGB, srcAlpha, dstAlpha glbase.Enum) {
+ C.gl4_3core_glBlendFuncSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(srcRGB), C.GLenum(dstRGB), C.GLenum(srcAlpha), C.GLenum(dstAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendFunci.xml
+func (gl *GL) BlendFunci(buf uint32, src, dst glbase.Enum) {
+ C.gl4_3core_glBlendFunci(gl.funcs, C.GLuint(buf), C.GLenum(src), C.GLenum(dst))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationSeparatei.xml
+func (gl *GL) BlendEquationSeparatei(buf uint32, modeRGB, modeAlpha glbase.Enum) {
+ C.gl4_3core_glBlendEquationSeparatei(gl.funcs, C.GLuint(buf), C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBlendEquationi.xml
+func (gl *GL) BlendEquationi(buf uint32, mode glbase.Enum) {
+ C.gl4_3core_glBlendEquationi(gl.funcs, C.GLuint(buf), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMinSampleShading.xml
+func (gl *GL) MinSampleShading(value float32) {
+ C.gl4_3core_glMinSampleShading(gl.funcs, C.GLfloat(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetDoublei_v.xml
+func (gl *GL) GetDoublei_v(target glbase.Enum, index uint32, data []float64) {
+ C.gl4_3core_glGetDoublei_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFloati_v.xml
+func (gl *GL) GetFloati_v(target glbase.Enum, index uint32, data []float32) {
+ C.gl4_3core_glGetFloati_v(gl.funcs, C.GLenum(target), C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&data[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeIndexed.xml
+func (gl *GL) DepthRangeIndexed(index uint32, n, f float64) {
+ C.gl4_3core_glDepthRangeIndexed(gl.funcs, C.GLuint(index), C.GLdouble(n), C.GLdouble(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangeArrayv.xml
+func (gl *GL) DepthRangeArrayv(first uint32, count int, v []float64) {
+ C.gl4_3core_glDepthRangeArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexedv.xml
+func (gl *GL) ScissorIndexedv(index uint32, v []int32) {
+ C.gl4_3core_glScissorIndexedv(gl.funcs, C.GLuint(index), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorIndexed.xml
+func (gl *GL) ScissorIndexed(index uint32, left, bottom int32, width, height int) {
+ C.gl4_3core_glScissorIndexed(gl.funcs, C.GLuint(index), C.GLint(left), C.GLint(bottom), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glScissorArrayv.xml
+func (gl *GL) ScissorArrayv(first uint32, count int, v []int32) {
+ C.gl4_3core_glScissorArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedfv.xml
+func (gl *GL) ViewportIndexedfv(index uint32, v []float32) {
+ C.gl4_3core_glViewportIndexedfv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportIndexedf.xml
+func (gl *GL) ViewportIndexedf(index uint32, x, y, w, h float32) {
+ C.gl4_3core_glViewportIndexedf(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(w), C.GLfloat(h))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glViewportArrayv.xml
+func (gl *GL) ViewportArrayv(first uint32, count int, v []float32) {
+ C.gl4_3core_glViewportArrayv(gl.funcs, C.GLuint(first), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetVertexAttribLdv.xml
+func (gl *GL) GetVertexAttribLdv(index glbase.Attrib, pname glbase.Enum, params []float64) {
+ C.gl4_3core_glGetVertexAttribLdv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLdouble)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribLPointer.xml
+func (gl *GL) VertexAttribLPointer(index glbase.Attrib, size int, gltype glbase.Enum, stride int, pointer interface{}) {
+ var pointer_ptr unsafe.Pointer
+ var pointer_v = reflect.ValueOf(pointer)
+ if pointer != nil && pointer_v.Kind() != reflect.Slice {
+ panic("parameter pointer must be a slice")
+ }
+ if pointer != nil {
+ pointer_ptr = unsafe.Pointer(pointer_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glVertexAttribLPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), C.GLsizei(stride), pointer_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4dv.xml
+func (gl *GL) VertexAttribL4dv(index glbase.Attrib, v []float64) {
+ if len(v) != 4 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3core_glVertexAttribL4dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3dv.xml
+func (gl *GL) VertexAttribL3dv(index glbase.Attrib, v []float64) {
+ if len(v) != 3 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3core_glVertexAttribL3dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2dv.xml
+func (gl *GL) VertexAttribL2dv(index glbase.Attrib, v []float64) {
+ if len(v) != 2 {
+ panic("parameter v has incorrect length")
+ }
+ C.gl4_3core_glVertexAttribL2dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1dv.xml
+func (gl *GL) VertexAttribL1dv(index glbase.Attrib, v []float64) {
+ C.gl4_3core_glVertexAttribL1dv(gl.funcs, C.GLuint(index), (*C.GLdouble)(unsafe.Pointer(&v[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL4d.xml
+func (gl *GL) VertexAttribL4d(index glbase.Attrib, x, y, z, w float64) {
+ C.gl4_3core_glVertexAttribL4d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z), C.GLdouble(w))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL3d.xml
+func (gl *GL) VertexAttribL3d(index glbase.Attrib, x, y, z float64) {
+ C.gl4_3core_glVertexAttribL3d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y), C.GLdouble(z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL2d.xml
+func (gl *GL) VertexAttribL2d(index glbase.Attrib, x, y float64) {
+ C.gl4_3core_glVertexAttribL2d(gl.funcs, C.GLuint(index), C.GLdouble(x), C.GLdouble(y))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribL1d.xml
+func (gl *GL) VertexAttribL1d(index glbase.Attrib, x float64) {
+ C.gl4_3core_glVertexAttribL1d(gl.funcs, C.GLuint(index), C.GLdouble(x))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineInfoLog.xml
+func (gl *GL) GetProgramPipelineInfoLog(pipeline uint32, bufSize int32, length []int32, infoLog []byte) {
+ C.gl4_3core_glGetProgramPipelineInfoLog(gl.funcs, C.GLuint(pipeline), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glValidateProgramPipeline.xml
+func (gl *GL) ValidateProgramPipeline(pipeline uint32) {
+ C.gl4_3core_glValidateProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3dv.xml
+func (gl *GL) ProgramUniformMatrix4x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix4x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4dv.xml
+func (gl *GL) ProgramUniformMatrix3x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix3x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2dv.xml
+func (gl *GL) ProgramUniformMatrix4x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix4x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4dv.xml
+func (gl *GL) ProgramUniformMatrix2x4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix2x4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2dv.xml
+func (gl *GL) ProgramUniformMatrix3x2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix3x2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3dv.xml
+func (gl *GL) ProgramUniformMatrix2x3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix2x3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x3fv.xml
+func (gl *GL) ProgramUniformMatrix4x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix4x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x4fv.xml
+func (gl *GL) ProgramUniformMatrix3x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix3x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4x2fv.xml
+func (gl *GL) ProgramUniformMatrix4x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix4x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x4fv.xml
+func (gl *GL) ProgramUniformMatrix2x4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix2x4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3x2fv.xml
+func (gl *GL) ProgramUniformMatrix3x2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix3x2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2x3fv.xml
+func (gl *GL) ProgramUniformMatrix2x3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix2x3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4dv.xml
+func (gl *GL) ProgramUniformMatrix4dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3dv.xml
+func (gl *GL) ProgramUniformMatrix3dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2dv.xml
+func (gl *GL) ProgramUniformMatrix2dv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix4fv.xml
+func (gl *GL) ProgramUniformMatrix4fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix3fv.xml
+func (gl *GL) ProgramUniformMatrix3fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniformMatrix2fv.xml
+func (gl *GL) ProgramUniformMatrix2fv(program glbase.Program, location glbase.Uniform, count int, transpose bool, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniformMatrix2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4uiv.xml
+func (gl *GL) ProgramUniform4uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_3core_glProgramUniform4uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4ui.xml
+func (gl *GL) ProgramUniform4ui(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 uint32) {
+ C.gl4_3core_glProgramUniform4ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2), C.GLuint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4dv.xml
+func (gl *GL) ProgramUniform4dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniform4dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4d.xml
+func (gl *GL) ProgramUniform4d(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float64) {
+ C.gl4_3core_glProgramUniform4d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2), C.GLdouble(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4fv.xml
+func (gl *GL) ProgramUniform4fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniform4fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4f.xml
+func (gl *GL) ProgramUniform4f(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gl4_3core_glProgramUniform4f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4iv.xml
+func (gl *GL) ProgramUniform4iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 4 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniform4iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform4i.xml
+func (gl *GL) ProgramUniform4i(program glbase.Program, location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gl4_3core_glProgramUniform4i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3uiv.xml
+func (gl *GL) ProgramUniform3uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_3core_glProgramUniform3uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3ui.xml
+func (gl *GL) ProgramUniform3ui(program glbase.Program, location glbase.Uniform, v0, v1, v2 uint32) {
+ C.gl4_3core_glProgramUniform3ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1), C.GLuint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3dv.xml
+func (gl *GL) ProgramUniform3dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniform3dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3d.xml
+func (gl *GL) ProgramUniform3d(program glbase.Program, location glbase.Uniform, v0, v1, v2 float64) {
+ C.gl4_3core_glProgramUniform3d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1), C.GLdouble(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3fv.xml
+func (gl *GL) ProgramUniform3fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniform3fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3f.xml
+func (gl *GL) ProgramUniform3f(program glbase.Program, location glbase.Uniform, v0, v1, v2 float32) {
+ C.gl4_3core_glProgramUniform3f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3iv.xml
+func (gl *GL) ProgramUniform3iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 3 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniform3iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform3i.xml
+func (gl *GL) ProgramUniform3i(program glbase.Program, location glbase.Uniform, v0, v1, v2 int32) {
+ C.gl4_3core_glProgramUniform3i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2uiv.xml
+func (gl *GL) ProgramUniform2uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_3core_glProgramUniform2uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2ui.xml
+func (gl *GL) ProgramUniform2ui(program glbase.Program, location glbase.Uniform, v0, v1 uint32) {
+ C.gl4_3core_glProgramUniform2ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0), C.GLuint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2dv.xml
+func (gl *GL) ProgramUniform2dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniform2dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2d.xml
+func (gl *GL) ProgramUniform2d(program glbase.Program, location glbase.Uniform, v0, v1 float64) {
+ C.gl4_3core_glProgramUniform2d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0), C.GLdouble(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2fv.xml
+func (gl *GL) ProgramUniform2fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniform2fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2f.xml
+func (gl *GL) ProgramUniform2f(program glbase.Program, location glbase.Uniform, v0, v1 float32) {
+ C.gl4_3core_glProgramUniform2f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2iv.xml
+func (gl *GL) ProgramUniform2iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ if len(value) != 2 {
+ panic("parameter value has incorrect length")
+ }
+ C.gl4_3core_glProgramUniform2iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform2i.xml
+func (gl *GL) ProgramUniform2i(program glbase.Program, location glbase.Uniform, v0, v1 int32) {
+ C.gl4_3core_glProgramUniform2i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1uiv.xml
+func (gl *GL) ProgramUniform1uiv(program glbase.Program, location glbase.Uniform, count int, value []uint32) {
+ C.gl4_3core_glProgramUniform1uiv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1ui.xml
+func (gl *GL) ProgramUniform1ui(program glbase.Program, location glbase.Uniform, v0 uint32) {
+ C.gl4_3core_glProgramUniform1ui(gl.funcs, C.GLuint(program), C.GLint(location), C.GLuint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1dv.xml
+func (gl *GL) ProgramUniform1dv(program glbase.Program, location glbase.Uniform, count int, value []float64) {
+ C.gl4_3core_glProgramUniform1dv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLdouble)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1d.xml
+func (gl *GL) ProgramUniform1d(program glbase.Program, location glbase.Uniform, v0 float64) {
+ C.gl4_3core_glProgramUniform1d(gl.funcs, C.GLuint(program), C.GLint(location), C.GLdouble(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1fv.xml
+func (gl *GL) ProgramUniform1fv(program glbase.Program, location glbase.Uniform, count int, value []float32) {
+ C.gl4_3core_glProgramUniform1fv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1f.xml
+func (gl *GL) ProgramUniform1f(program glbase.Program, location glbase.Uniform, v0 float32) {
+ C.gl4_3core_glProgramUniform1f(gl.funcs, C.GLuint(program), C.GLint(location), C.GLfloat(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1iv.xml
+func (gl *GL) ProgramUniform1iv(program glbase.Program, location glbase.Uniform, count int, value []int32) {
+ C.gl4_3core_glProgramUniform1iv(gl.funcs, C.GLuint(program), C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramUniform1i.xml
+func (gl *GL) ProgramUniform1i(program glbase.Program, location glbase.Uniform, v0 int32) {
+ C.gl4_3core_glProgramUniform1i(gl.funcs, C.GLuint(program), C.GLint(location), C.GLint(v0))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramPipelineiv.xml
+func (gl *GL) GetProgramPipelineiv(pipeline uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetProgramPipelineiv(gl.funcs, C.GLuint(pipeline), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glIsProgramPipeline.xml
+func (gl *GL) IsProgramPipeline(pipeline uint32) bool {
+ glresult := C.gl4_3core_glIsProgramPipeline(gl.funcs, C.GLuint(pipeline))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGenProgramPipelines.xml
+func (gl *GL) GenProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_3core_glGenProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDeleteProgramPipelines.xml
+func (gl *GL) DeleteProgramPipelines(n int, pipelines []uint32) {
+ C.gl4_3core_glDeleteProgramPipelines(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&pipelines[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindProgramPipeline.xml
+func (gl *GL) BindProgramPipeline(pipeline uint32) {
+ C.gl4_3core_glBindProgramPipeline(gl.funcs, C.GLuint(pipeline))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glActiveShaderProgram.xml
+func (gl *GL) ActiveShaderProgram(pipeline uint32, program glbase.Program) {
+ C.gl4_3core_glActiveShaderProgram(gl.funcs, C.GLuint(pipeline), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glUseProgramStages.xml
+func (gl *GL) UseProgramStages(pipeline uint32, stages glbase.Bitfield, program glbase.Program) {
+ C.gl4_3core_glUseProgramStages(gl.funcs, C.GLuint(pipeline), C.GLbitfield(stages), C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramParameteri.xml
+func (gl *GL) ProgramParameteri(program glbase.Program, pname glbase.Enum, value int32) {
+ C.gl4_3core_glProgramParameteri(gl.funcs, C.GLuint(program), C.GLenum(pname), C.GLint(value))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glProgramBinary.xml
+func (gl *GL) ProgramBinary(program glbase.Program, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glProgramBinary(gl.funcs, C.GLuint(program), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramBinary.xml
+func (gl *GL) GetProgramBinary(program glbase.Program, bufSize int32, length []int32, binaryFormat []glbase.Enum, binary interface{}) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glGetProgramBinary(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLenum)(unsafe.Pointer(&binaryFormat[0])), binary_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearDepthf.xml
+func (gl *GL) ClearDepthf(dd float32) {
+ C.gl4_3core_glClearDepthf(gl.funcs, C.GLfloat(dd))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDepthRangef.xml
+func (gl *GL) DepthRangef(n, f float32) {
+ C.gl4_3core_glDepthRangef(gl.funcs, C.GLfloat(n), C.GLfloat(f))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetShaderPrecisionFormat.xml
+func (gl *GL) GetShaderPrecisionFormat(shadertype, precisionType glbase.Enum, range_, precision []int32) {
+ C.gl4_3core_glGetShaderPrecisionFormat(gl.funcs, C.GLenum(shadertype), C.GLenum(precisionType), (*C.GLint)(unsafe.Pointer(&range_[0])), (*C.GLint)(unsafe.Pointer(&precision[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShaderBinary.xml
+func (gl *GL) ShaderBinary(count int, shaders []glbase.Shader, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glShaderBinary(gl.funcs, C.GLsizei(count), (*C.GLuint)(unsafe.Pointer(&shaders[0])), C.GLenum(binaryFormat), binary_ptr, C.GLsizei(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glReleaseShaderCompiler.xml
+func (gl *GL) ReleaseShaderCompiler() {
+ C.gl4_3core_glReleaseShaderCompiler(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage3D.xml
+func (gl *GL) TexStorage3D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width, height int, depth int32) {
+ C.gl4_3core_glTexStorage3D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage2D.xml
+func (gl *GL) TexStorage2D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width, height int) {
+ C.gl4_3core_glTexStorage2D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage1D.xml
+func (gl *GL) TexStorage1D(target glbase.Enum, levels int32, internalFormat glbase.Enum, width int) {
+ C.gl4_3core_glTexStorage1D(gl.funcs, C.GLenum(target), C.GLsizei(levels), C.GLenum(internalFormat), C.GLsizei(width))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMemoryBarrier.xml
+func (gl *GL) MemoryBarrier(barriers glbase.Bitfield) {
+ C.gl4_3core_glMemoryBarrier(gl.funcs, C.GLbitfield(barriers))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindImageTexture.xml
+func (gl *GL) BindImageTexture(unit uint32, texture glbase.Texture, level int, layered bool, layer int32, access, format glbase.Enum) {
+ C.gl4_3core_glBindImageTexture(gl.funcs, C.GLuint(unit), C.GLuint(texture), C.GLint(level), *(*C.GLboolean)(unsafe.Pointer(&layered)), C.GLint(layer), C.GLenum(access), C.GLenum(format))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetActiveAtomicCounterBufferiv.xml
+func (gl *GL) GetActiveAtomicCounterBufferiv(program glbase.Program, bufferIndex uint32, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetActiveAtomicCounterBufferiv(gl.funcs, C.GLuint(program), C.GLuint(bufferIndex), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInternalformativ.xml
+func (gl *GL) GetInternalformativ(target, internalFormat, pname glbase.Enum, bufSize int32, params []int32) {
+ C.gl4_3core_glGetInternalformativ(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackStreamInstanced.xml
+func (gl *GL) DrawTransformFeedbackStreamInstanced(mode glbase.Enum, id, stream uint32, instancecount int32) {
+ C.gl4_3core_glDrawTransformFeedbackStreamInstanced(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLuint(stream), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawTransformFeedbackInstanced.xml
+func (gl *GL) DrawTransformFeedbackInstanced(mode glbase.Enum, id uint32, instancecount int32) {
+ C.gl4_3core_glDrawTransformFeedbackInstanced(gl.funcs, C.GLenum(mode), C.GLuint(id), C.GLsizei(instancecount))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseVertexBaseInstance.xml
+func (gl *GL) DrawElementsInstancedBaseVertexBaseInstance(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount, basevertex int32, baseinstance uint32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawElementsInstancedBaseVertexBaseInstance(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLint(basevertex), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawElementsInstancedBaseInstance.xml
+func (gl *GL) DrawElementsInstancedBaseInstance(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}, instancecount int32, baseinstance uint32) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glDrawElementsInstancedBaseInstance(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr, C.GLsizei(instancecount), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDrawArraysInstancedBaseInstance.xml
+func (gl *GL) DrawArraysInstancedBaseInstance(mode glbase.Enum, first, count int, instancecount int32, baseinstance uint32) {
+ C.gl4_3core_glDrawArraysInstancedBaseInstance(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count), C.GLsizei(instancecount), C.GLuint(baseinstance))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage3DMultisample.xml
+func (gl *GL) TexStorage3DMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int, depth int32, fixedsamplelocations bool) {
+ C.gl4_3core_glTexStorage3DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexStorage2DMultisample.xml
+func (gl *GL) TexStorage2DMultisample(target glbase.Enum, samples int32, internalFormat glbase.Enum, width, height int, fixedsamplelocations bool) {
+ C.gl4_3core_glTexStorage2DMultisample(gl.funcs, C.GLenum(target), C.GLsizei(samples), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), *(*C.GLboolean)(unsafe.Pointer(&fixedsamplelocations)))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTexBufferRange.xml
+func (gl *GL) TexBufferRange(target, internalFormat glbase.Enum, buffer glbase.Buffer, offset, size int) {
+ C.gl4_3core_glTexBufferRange(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(size))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glShaderStorageBlockBinding.xml
+func (gl *GL) ShaderStorageBlockBinding(program glbase.Program, storageBlockIndex, storageBlockBinding uint32) {
+ C.gl4_3core_glShaderStorageBlockBinding(gl.funcs, C.GLuint(program), C.GLuint(storageBlockIndex), C.GLuint(storageBlockBinding))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceLocationIndex.xml
+func (gl *GL) GetProgramResourceLocationIndex(program glbase.Program, programInterface glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_3core_glGetProgramResourceLocationIndex(gl.funcs, C.GLuint(program), C.GLenum(programInterface), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceLocation.xml
+func (gl *GL) GetProgramResourceLocation(program glbase.Program, programInterface glbase.Enum, name []byte) int32 {
+ glresult := C.gl4_3core_glGetProgramResourceLocation(gl.funcs, C.GLuint(program), C.GLenum(programInterface), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return int32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceiv.xml
+func (gl *GL) GetProgramResourceiv(program glbase.Program, programInterface glbase.Enum, index uint32, propCount int32, props []glbase.Enum, bufSize int32, length, params []int32) {
+ C.gl4_3core_glGetProgramResourceiv(gl.funcs, C.GLuint(program), C.GLenum(programInterface), C.GLuint(index), C.GLsizei(propCount), (*C.GLenum)(unsafe.Pointer(&props[0])), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceName.xml
+func (gl *GL) GetProgramResourceName(program glbase.Program, programInterface glbase.Enum, index uint32, bufSize int32, length []int32, name []byte) {
+ C.gl4_3core_glGetProgramResourceName(gl.funcs, C.GLuint(program), C.GLenum(programInterface), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramResourceIndex.xml
+func (gl *GL) GetProgramResourceIndex(program glbase.Program, programInterface glbase.Enum, name []byte) uint32 {
+ glresult := C.gl4_3core_glGetProgramResourceIndex(gl.funcs, C.GLuint(program), C.GLenum(programInterface), (*C.GLchar)(unsafe.Pointer(&name[0])))
+ return uint32(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetProgramInterfaceiv.xml
+func (gl *GL) GetProgramInterfaceiv(program glbase.Program, programInterface, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetProgramInterfaceiv(gl.funcs, C.GLuint(program), C.GLenum(programInterface), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawElementsIndirect.xml
+func (gl *GL) MultiDrawElementsIndirect(mode, gltype glbase.Enum, indirect interface{}, drawcount int32, stride int) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glMultiDrawElementsIndirect(gl.funcs, C.GLenum(mode), C.GLenum(gltype), indirect_ptr, C.GLsizei(drawcount), C.GLsizei(stride))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glMultiDrawArraysIndirect.xml
+func (gl *GL) MultiDrawArraysIndirect(mode glbase.Enum, indirect interface{}, drawcount int32, stride int) {
+ var indirect_ptr unsafe.Pointer
+ var indirect_v = reflect.ValueOf(indirect)
+ if indirect != nil && indirect_v.Kind() != reflect.Slice {
+ panic("parameter indirect must be a slice")
+ }
+ if indirect != nil {
+ indirect_ptr = unsafe.Pointer(indirect_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glMultiDrawArraysIndirect(gl.funcs, C.GLenum(mode), indirect_ptr, C.GLsizei(drawcount), C.GLsizei(stride))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateSubFramebuffer.xml
+func (gl *GL) InvalidateSubFramebuffer(target glbase.Enum, numAttachments int32, attachments []glbase.Enum, x, y, width, height int) {
+ C.gl4_3core_glInvalidateSubFramebuffer(gl.funcs, C.GLenum(target), C.GLsizei(numAttachments), (*C.GLenum)(unsafe.Pointer(&attachments[0])), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateFramebuffer.xml
+func (gl *GL) InvalidateFramebuffer(target glbase.Enum, numAttachments int32, attachments []glbase.Enum) {
+ C.gl4_3core_glInvalidateFramebuffer(gl.funcs, C.GLenum(target), C.GLsizei(numAttachments), (*C.GLenum)(unsafe.Pointer(&attachments[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateBufferData.xml
+func (gl *GL) InvalidateBufferData(buffer glbase.Buffer) {
+ C.gl4_3core_glInvalidateBufferData(gl.funcs, C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateBufferSubData.xml
+func (gl *GL) InvalidateBufferSubData(buffer glbase.Buffer, offset, length int) {
+ C.gl4_3core_glInvalidateBufferSubData(gl.funcs, C.GLuint(buffer), C.GLintptr(offset), C.GLsizeiptr(length))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateTexImage.xml
+func (gl *GL) InvalidateTexImage(texture glbase.Texture, level int) {
+ C.gl4_3core_glInvalidateTexImage(gl.funcs, C.GLuint(texture), C.GLint(level))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glInvalidateTexSubImage.xml
+func (gl *GL) InvalidateTexSubImage(texture glbase.Texture, level, xoffset, yoffset int, zoffset int32, width, height int, depth int32) {
+ C.gl4_3core_glInvalidateTexSubImage(gl.funcs, C.GLuint(texture), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(zoffset), C.GLsizei(width), C.GLsizei(height), C.GLsizei(depth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetInternalformati64v.xml
+func (gl *GL) GetInternalformati64v(target, internalFormat, pname glbase.Enum, bufSize int32, params []int64) {
+ C.gl4_3core_glGetInternalformati64v(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLenum(pname), C.GLsizei(bufSize), (*C.GLint64)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glGetFramebufferParameteriv.xml
+func (gl *GL) GetFramebufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gl4_3core_glGetFramebufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glFramebufferParameteri.xml
+func (gl *GL) FramebufferParameteri(target, pname glbase.Enum, param int32) {
+ C.gl4_3core_glFramebufferParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexBindingDivisor.xml
+func (gl *GL) VertexBindingDivisor(bindingindex, divisor uint32) {
+ C.gl4_3core_glVertexBindingDivisor(gl.funcs, C.GLuint(bindingindex), C.GLuint(divisor))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribBinding.xml
+func (gl *GL) VertexAttribBinding(attribindex, bindingindex uint32) {
+ C.gl4_3core_glVertexAttribBinding(gl.funcs, C.GLuint(attribindex), C.GLuint(bindingindex))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribLFormat.xml
+func (gl *GL) VertexAttribLFormat(attribindex uint32, size int, gltype glbase.Enum, relativeoffset uint32) {
+ C.gl4_3core_glVertexAttribLFormat(gl.funcs, C.GLuint(attribindex), C.GLint(size), C.GLenum(gltype), C.GLuint(relativeoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribIFormat.xml
+func (gl *GL) VertexAttribIFormat(attribindex uint32, size int, gltype glbase.Enum, relativeoffset uint32) {
+ C.gl4_3core_glVertexAttribIFormat(gl.funcs, C.GLuint(attribindex), C.GLint(size), C.GLenum(gltype), C.GLuint(relativeoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glVertexAttribFormat.xml
+func (gl *GL) VertexAttribFormat(attribindex uint32, size int, gltype glbase.Enum, normalized bool, relativeoffset uint32) {
+ C.gl4_3core_glVertexAttribFormat(gl.funcs, C.GLuint(attribindex), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLuint(relativeoffset))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glBindVertexBuffer.xml
+func (gl *GL) BindVertexBuffer(bindingindex uint32, buffer glbase.Buffer, offset, stride int) {
+ C.gl4_3core_glBindVertexBuffer(gl.funcs, C.GLuint(bindingindex), C.GLuint(buffer), C.GLintptr(offset), C.GLsizei(stride))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glTextureView.xml
+func (gl *GL) TextureView(texture glbase.Texture, target glbase.Enum, origtexture uint32, internalFormat glbase.Enum, minlevel, numlevels, minlayer, numlayers uint32) {
+ C.gl4_3core_glTextureView(gl.funcs, C.GLuint(texture), C.GLenum(target), C.GLuint(origtexture), C.GLenum(internalFormat), C.GLuint(minlevel), C.GLuint(numlevels), C.GLuint(minlayer), C.GLuint(numlayers))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glCopyImageSubData.xml
+func (gl *GL) CopyImageSubData(srcName uint32, srcTarget glbase.Enum, srcLevel, srcX, srcY, srcZ int32, dstName uint32, dstTarget glbase.Enum, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth int32) {
+ C.gl4_3core_glCopyImageSubData(gl.funcs, C.GLuint(srcName), C.GLenum(srcTarget), C.GLint(srcLevel), C.GLint(srcX), C.GLint(srcY), C.GLint(srcZ), C.GLuint(dstName), C.GLenum(dstTarget), C.GLint(dstLevel), C.GLint(dstX), C.GLint(dstY), C.GLint(dstZ), C.GLsizei(srcWidth), C.GLsizei(srcHeight), C.GLsizei(srcDepth))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDispatchComputeIndirect.xml
+func (gl *GL) DispatchComputeIndirect(indirect int) {
+ C.gl4_3core_glDispatchComputeIndirect(gl.funcs, C.GLintptr(indirect))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glDispatchCompute.xml
+func (gl *GL) DispatchCompute(num_groups_x, num_groups_y, num_groups_z uint32) {
+ C.gl4_3core_glDispatchCompute(gl.funcs, C.GLuint(num_groups_x), C.GLuint(num_groups_y), C.GLuint(num_groups_z))
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferSubData.xml
+func (gl *GL) ClearBufferSubData(target, internalFormat glbase.Enum, offset, size int, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glClearBufferSubData(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLintptr(offset), C.GLsizeiptr(size), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man4/xhtml/glClearBufferData.xml
+func (gl *GL) ClearBufferData(target, internalFormat, format, gltype glbase.Enum, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gl4_3core_glClearBufferData(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLenum(format), C.GLenum(gltype), data_ptr)
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/funcs.cpp b/Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/funcs.cpp
new file mode 100644
index 000000000..71acf8d1b
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/funcs.cpp
@@ -0,0 +1,813 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/qopenglfunctions.h>
+
+#include "funcs.h"
+
+void *gles2_funcs() {
+ QOpenGLFunctions* funcs = QOpenGLContext::currentContext()->functions();
+ if (!funcs) {
+ return 0;
+ }
+ return funcs;
+}
+
+
+void gles2_glActiveTexture(void *_glfuncs, GLenum texture)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glActiveTexture(texture);
+}
+
+void gles2_glAttachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glAttachShader(program, shader);
+}
+
+void gles2_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBindAttribLocation(program, index, name);
+}
+
+void gles2_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBindBuffer(target, buffer);
+}
+
+void gles2_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBindFramebuffer(target, framebuffer);
+}
+
+void gles2_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBindRenderbuffer(target, renderbuffer);
+}
+
+void gles2_glBlendColor(void *_glfuncs, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBlendColor(red, green, blue, alpha);
+}
+
+void gles2_glBlendEquation(void *_glfuncs, GLenum mode)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBlendEquation(mode);
+}
+
+void gles2_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBlendEquationSeparate(modeRGB, modeAlpha);
+}
+
+void gles2_glBlendFuncSeparate(void *_glfuncs, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void gles2_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBufferData(target, size, data, usage);
+}
+
+void gles2_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glBufferSubData(target, offset, size, data);
+}
+
+GLenum gles2_glCheckFramebufferStatus(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glCheckFramebufferStatus(target);
+}
+
+void gles2_glClearDepthf(void *_glfuncs, GLclampf depth)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glClearDepthf(depth);
+}
+
+void gles2_glCompileShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glCompileShader(shader);
+}
+
+void gles2_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
+}
+
+void gles2_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+GLuint gles2_glCreateProgram(void *_glfuncs)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glCreateProgram();
+}
+
+GLuint gles2_glCreateShader(void *_glfuncs, GLenum gltype)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glCreateShader(gltype);
+}
+
+void gles2_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glDeleteBuffers(n, buffers);
+}
+
+void gles2_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glDeleteFramebuffers(n, framebuffers);
+}
+
+void gles2_glDeleteProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glDeleteProgram(program);
+}
+
+void gles2_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glDeleteRenderbuffers(n, renderbuffers);
+}
+
+void gles2_glDeleteShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glDeleteShader(shader);
+}
+
+void gles2_glDepthRangef(void *_glfuncs, GLclampf zNear, GLclampf zFar)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glDepthRangef(zNear, zFar);
+}
+
+void gles2_glDetachShader(void *_glfuncs, GLuint program, GLuint shader)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glDetachShader(program, shader);
+}
+
+void gles2_glDisableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glDisableVertexAttribArray(index);
+}
+
+void gles2_glEnableVertexAttribArray(void *_glfuncs, GLuint index)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glEnableVertexAttribArray(index);
+}
+
+void gles2_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void gles2_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glFramebufferTexture2D(target, attachment, textarget, texture, level);
+}
+
+void gles2_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGenBuffers(n, buffers);
+}
+
+void gles2_glGenerateMipmap(void *_glfuncs, GLenum target)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGenerateMipmap(target);
+}
+
+void gles2_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGenFramebuffers(n, framebuffers);
+}
+
+void gles2_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGenRenderbuffers(n, renderbuffers);
+}
+
+void gles2_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetActiveAttrib(program, index, bufSize, length, size, gltype, name);
+}
+
+void gles2_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetActiveUniform(program, index, bufSize, length, size, gltype, name);
+}
+
+void gles2_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetAttachedShaders(program, maxcount, count, shaders);
+}
+
+GLint gles2_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glGetAttribLocation(program, name);
+}
+
+void gles2_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetBufferParameteriv(target, pname, params);
+}
+
+void gles2_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
+}
+
+void gles2_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetProgramiv(program, pname, params);
+}
+
+void gles2_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetProgramInfoLog(program, bufSize, length, infoLog);
+}
+
+void gles2_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetRenderbufferParameteriv(target, pname, params);
+}
+
+void gles2_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetShaderiv(shader, pname, params);
+}
+
+void gles2_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetShaderInfoLog(shader, bufSize, length, infoLog);
+}
+
+void gles2_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetShaderPrecisionFormat(shadertype, precisionType, range_, precision);
+}
+
+void gles2_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetShaderSource(shader, bufSize, length, source);
+}
+
+void gles2_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetUniformfv(program, location, params);
+}
+
+void gles2_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetUniformiv(program, location, params);
+}
+
+GLint gles2_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glGetUniformLocation(program, name);
+}
+
+void gles2_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribfv(index, pname, params);
+}
+
+void gles2_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glGetVertexAttribiv(index, pname, params);
+}
+
+GLboolean gles2_glIsBuffer(void *_glfuncs, GLuint buffer)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glIsBuffer(buffer);
+}
+
+GLboolean gles2_glIsFramebuffer(void *_glfuncs, GLuint framebuffer)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glIsFramebuffer(framebuffer);
+}
+
+GLboolean gles2_glIsProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glIsProgram(program);
+}
+
+GLboolean gles2_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glIsRenderbuffer(renderbuffer);
+}
+
+GLboolean gles2_glIsShader(void *_glfuncs, GLuint shader)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ return _qglfuncs->glIsShader(shader);
+}
+
+void gles2_glLinkProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glLinkProgram(program);
+}
+
+void gles2_glReleaseShaderCompiler(void *_glfuncs)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glReleaseShaderCompiler();
+}
+
+void gles2_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glRenderbufferStorage(target, internalFormat, width, height);
+}
+
+void gles2_glSampleCoverage(void *_glfuncs, GLclampf value, GLboolean invert)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glSampleCoverage(value, invert);
+}
+
+void gles2_glShaderBinary(void *_glfuncs, GLint n, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLint length)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glShaderBinary(n, shaders, binaryFormat, binary, length);
+}
+
+void gles2_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glShaderSource(shader, count, source, length);
+}
+
+void gles2_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glStencilFuncSeparate(face, glfunc, ref, mask);
+}
+
+void gles2_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glStencilMaskSeparate(face, mask);
+}
+
+void gles2_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glStencilOpSeparate(face, fail, zfail, zpass);
+}
+
+void gles2_glUniform1f(void *_glfuncs, GLint location, GLfloat v0)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform1f(location, v0);
+}
+
+void gles2_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform1fv(location, count, value);
+}
+
+void gles2_glUniform1i(void *_glfuncs, GLint location, GLint v0)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform1i(location, v0);
+}
+
+void gles2_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform1iv(location, count, value);
+}
+
+void gles2_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform2f(location, v0, v1);
+}
+
+void gles2_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform2fv(location, count, value);
+}
+
+void gles2_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform2i(location, v0, v1);
+}
+
+void gles2_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform2iv(location, count, value);
+}
+
+void gles2_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform3f(location, v0, v1, v2);
+}
+
+void gles2_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform3fv(location, count, value);
+}
+
+void gles2_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform3i(location, v0, v1, v2);
+}
+
+void gles2_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform3iv(location, count, value);
+}
+
+void gles2_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform4f(location, v0, v1, v2, v3);
+}
+
+void gles2_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform4fv(location, count, value);
+}
+
+void gles2_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform4i(location, v0, v1, v2, v3);
+}
+
+void gles2_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniform4iv(location, count, value);
+}
+
+void gles2_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniformMatrix2fv(location, count, transpose, value);
+}
+
+void gles2_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniformMatrix3fv(location, count, transpose, value);
+}
+
+void gles2_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUniformMatrix4fv(location, count, transpose, value);
+}
+
+void gles2_glUseProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glUseProgram(program);
+}
+
+void gles2_glValidateProgram(void *_glfuncs, GLuint program)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glValidateProgram(program);
+}
+
+void gles2_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1f(index, x);
+}
+
+void gles2_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* values)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glVertexAttrib1fv(index, values);
+}
+
+void gles2_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2f(index, x, y);
+}
+
+void gles2_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* values)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glVertexAttrib2fv(index, values);
+}
+
+void gles2_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3f(index, x, y, z);
+}
+
+void gles2_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* values)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glVertexAttrib3fv(index, values);
+}
+
+void gles2_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4f(index, x, y, z, w);
+}
+
+void gles2_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* values)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glVertexAttrib4fv(index, values);
+}
+
+void gles2_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset)
+{
+ QOpenGLFunctions* _qglfuncs = reinterpret_cast<QOpenGLFunctions*>(_glfuncs);
+ _qglfuncs->glVertexAttribPointer(index, size, gltype, normalized, stride, offset);
+}
+
+void gles2_glBindTexture(void *_glfuncs, GLenum target, GLuint texture)
+{
+ glBindTexture(target, texture);
+}
+
+void gles2_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor)
+{
+ glBlendFunc(sfactor, dfactor);
+}
+
+void gles2_glClear(void *_glfuncs, GLbitfield mask)
+{
+ glClear(mask);
+}
+
+void gles2_glClearColor(void *_glfuncs, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+ glClearColor(red, green, blue, alpha);
+}
+
+void gles2_glClearStencil(void *_glfuncs, GLint s)
+{
+ glClearStencil(s);
+}
+
+void gles2_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+ glColorMask(red, green, blue, alpha);
+}
+
+void gles2_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+ glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border);
+}
+
+void gles2_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void gles2_glCullFace(void *_glfuncs, GLenum mode)
+{
+ glCullFace(mode);
+}
+
+void gles2_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures)
+{
+ glDeleteTextures(n, textures);
+}
+
+void gles2_glDepthFunc(void *_glfuncs, GLenum glfunc)
+{
+ glDepthFunc(glfunc);
+}
+
+void gles2_glDepthMask(void *_glfuncs, GLboolean flag)
+{
+ glDepthMask(flag);
+}
+
+void gles2_glDisable(void *_glfuncs, GLenum cap)
+{
+ glDisable(cap);
+}
+
+void gles2_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count)
+{
+ glDrawArrays(mode, first, count);
+}
+
+void gles2_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices)
+{
+ glDrawElements(mode, count, gltype, indices);
+}
+
+void gles2_glEnable(void *_glfuncs, GLenum cap)
+{
+ glEnable(cap);
+}
+
+void gles2_glFinish(void *_glfuncs)
+{
+ glFinish();
+}
+
+void gles2_glFlush(void *_glfuncs)
+{
+ glFlush();
+}
+
+void gles2_glFrontFace(void *_glfuncs, GLenum mode)
+{
+ glFrontFace(mode);
+}
+
+void gles2_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures)
+{
+ glGenTextures(n, textures);
+}
+
+void gles2_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params)
+{
+ glGetBooleanv(pname, params);
+}
+
+GLenum gles2_glGetError(void *_glfuncs)
+{
+ return glGetError();
+}
+
+void gles2_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params)
+{
+ glGetFloatv(pname, params);
+}
+
+void gles2_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params)
+{
+ glGetIntegerv(pname, params);
+}
+
+void gles2_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params)
+{
+ glGetTexParameterfv(target, pname, params);
+}
+
+void gles2_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params)
+{
+ glGetTexParameteriv(target, pname, params);
+}
+
+void gles2_glHint(void *_glfuncs, GLenum target, GLenum mode)
+{
+ glHint(target, mode);
+}
+
+GLboolean gles2_glIsEnabled(void *_glfuncs, GLenum cap)
+{
+ return glIsEnabled(cap);
+}
+
+GLboolean gles2_glIsTexture(void *_glfuncs, GLuint texture)
+{
+ return glIsTexture(texture);
+}
+
+void gles2_glLineWidth(void *_glfuncs, GLfloat width)
+{
+ glLineWidth(width);
+}
+
+void gles2_glPixelStorei(void *_glfuncs, GLenum pname, GLint param)
+{
+ glPixelStorei(pname, param);
+}
+
+void gles2_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units)
+{
+ glPolygonOffset(factor, units);
+}
+
+void gles2_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels)
+{
+ glReadPixels(x, y, width, height, format, gltype, pixels);
+}
+
+void gles2_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ glScissor(x, y, width, height);
+}
+
+void gles2_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask)
+{
+ glStencilFunc(glfunc, ref, mask);
+}
+
+void gles2_glStencilMask(void *_glfuncs, GLuint mask)
+{
+ glStencilMask(mask);
+}
+
+void gles2_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass)
+{
+ glStencilOp(fail, zfail, zpass);
+}
+
+void gles2_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ glTexImage2D(target, level, internalFormat, width, height, border, format, gltype, pixels);
+}
+
+void gles2_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param)
+{
+ glTexParameterf(target, pname, param);
+}
+
+void gles2_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params)
+{
+ glTexParameterfv(target, pname, params);
+}
+
+void gles2_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param)
+{
+ glTexParameteri(target, pname, param);
+}
+
+void gles2_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params)
+{
+ glTexParameteriv(target, pname, params);
+}
+
+void gles2_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels)
+{
+ glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, gltype, pixels);
+}
+
+void gles2_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+ glViewport(x, y, width, height);
+}
+
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/funcs.h b/Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/funcs.h
new file mode 100644
index 000000000..7e9fd3534
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/funcs.h
@@ -0,0 +1,182 @@
+
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gles2_funcs();
+
+void gles2_glActiveTexture(void *_glfuncs, GLenum texture);
+void gles2_glAttachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gles2_glBindAttribLocation(void *_glfuncs, GLuint program, GLuint index, const GLchar* name);
+void gles2_glBindBuffer(void *_glfuncs, GLenum target, GLuint buffer);
+void gles2_glBindFramebuffer(void *_glfuncs, GLenum target, GLuint framebuffer);
+void gles2_glBindRenderbuffer(void *_glfuncs, GLenum target, GLuint renderbuffer);
+void gles2_glBlendColor(void *_glfuncs, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+void gles2_glBlendEquation(void *_glfuncs, GLenum mode);
+void gles2_glBlendEquationSeparate(void *_glfuncs, GLenum modeRGB, GLenum modeAlpha);
+void gles2_glBlendFuncSeparate(void *_glfuncs, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+void gles2_glBufferData(void *_glfuncs, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+void gles2_glBufferSubData(void *_glfuncs, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+GLenum gles2_glCheckFramebufferStatus(void *_glfuncs, GLenum target);
+void gles2_glClearDepthf(void *_glfuncs, GLclampf depth);
+void gles2_glCompileShader(void *_glfuncs, GLuint shader);
+void gles2_glCompressedTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+void gles2_glCompressedTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+GLuint gles2_glCreateProgram(void *_glfuncs);
+GLuint gles2_glCreateShader(void *_glfuncs, GLenum gltype);
+void gles2_glDeleteBuffers(void *_glfuncs, GLsizei n, const GLuint* buffers);
+void gles2_glDeleteFramebuffers(void *_glfuncs, GLsizei n, const GLuint* framebuffers);
+void gles2_glDeleteProgram(void *_glfuncs, GLuint program);
+void gles2_glDeleteRenderbuffers(void *_glfuncs, GLsizei n, const GLuint* renderbuffers);
+void gles2_glDeleteShader(void *_glfuncs, GLuint shader);
+void gles2_glDepthRangef(void *_glfuncs, GLclampf zNear, GLclampf zFar);
+void gles2_glDetachShader(void *_glfuncs, GLuint program, GLuint shader);
+void gles2_glDisableVertexAttribArray(void *_glfuncs, GLuint index);
+void gles2_glEnableVertexAttribArray(void *_glfuncs, GLuint index);
+void gles2_glFramebufferRenderbuffer(void *_glfuncs, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+void gles2_glFramebufferTexture2D(void *_glfuncs, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+void gles2_glGenBuffers(void *_glfuncs, GLsizei n, GLuint* buffers);
+void gles2_glGenerateMipmap(void *_glfuncs, GLenum target);
+void gles2_glGenFramebuffers(void *_glfuncs, GLsizei n, GLuint* framebuffers);
+void gles2_glGenRenderbuffers(void *_glfuncs, GLsizei n, GLuint* renderbuffers);
+void gles2_glGetActiveAttrib(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gles2_glGetActiveUniform(void *_glfuncs, GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* gltype, GLchar* name);
+void gles2_glGetAttachedShaders(void *_glfuncs, GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
+GLint gles2_glGetAttribLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gles2_glGetBufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gles2_glGetFramebufferAttachmentParameteriv(void *_glfuncs, GLenum target, GLenum attachment, GLenum pname, GLint* params);
+void gles2_glGetProgramiv(void *_glfuncs, GLuint program, GLenum pname, GLint* params);
+void gles2_glGetProgramInfoLog(void *_glfuncs, GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gles2_glGetRenderbufferParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gles2_glGetShaderiv(void *_glfuncs, GLuint shader, GLenum pname, GLint* params);
+void gles2_glGetShaderInfoLog(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog);
+void gles2_glGetShaderPrecisionFormat(void *_glfuncs, GLenum shadertype, GLenum precisionType, GLint* range_, GLint* precision);
+void gles2_glGetShaderSource(void *_glfuncs, GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source);
+void gles2_glGetUniformfv(void *_glfuncs, GLuint program, GLint location, GLfloat* params);
+void gles2_glGetUniformiv(void *_glfuncs, GLuint program, GLint location, GLint* params);
+GLint gles2_glGetUniformLocation(void *_glfuncs, GLuint program, const GLchar* name);
+void gles2_glGetVertexAttribfv(void *_glfuncs, GLuint index, GLenum pname, GLfloat* params);
+void gles2_glGetVertexAttribiv(void *_glfuncs, GLuint index, GLenum pname, GLint* params);
+GLboolean gles2_glIsBuffer(void *_glfuncs, GLuint buffer);
+GLboolean gles2_glIsFramebuffer(void *_glfuncs, GLuint framebuffer);
+GLboolean gles2_glIsProgram(void *_glfuncs, GLuint program);
+GLboolean gles2_glIsRenderbuffer(void *_glfuncs, GLuint renderbuffer);
+GLboolean gles2_glIsShader(void *_glfuncs, GLuint shader);
+void gles2_glLinkProgram(void *_glfuncs, GLuint program);
+void gles2_glReleaseShaderCompiler(void *_glfuncs);
+void gles2_glRenderbufferStorage(void *_glfuncs, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height);
+void gles2_glSampleCoverage(void *_glfuncs, GLclampf value, GLboolean invert);
+void gles2_glShaderBinary(void *_glfuncs, GLint n, const GLuint* shaders, GLenum binaryFormat, const GLvoid* binary, GLint length);
+void gles2_glShaderSource(void *_glfuncs, GLuint shader, GLsizei count, const GLchar** source, const GLint* length);
+void gles2_glStencilFuncSeparate(void *_glfuncs, GLenum face, GLenum glfunc, GLint ref, GLuint mask);
+void gles2_glStencilMaskSeparate(void *_glfuncs, GLenum face, GLuint mask);
+void gles2_glStencilOpSeparate(void *_glfuncs, GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
+void gles2_glUniform1f(void *_glfuncs, GLint location, GLfloat v0);
+void gles2_glUniform1fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gles2_glUniform1i(void *_glfuncs, GLint location, GLint v0);
+void gles2_glUniform1iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gles2_glUniform2f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1);
+void gles2_glUniform2fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gles2_glUniform2i(void *_glfuncs, GLint location, GLint v0, GLint v1);
+void gles2_glUniform2iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gles2_glUniform3f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+void gles2_glUniform3fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gles2_glUniform3i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2);
+void gles2_glUniform3iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gles2_glUniform4f(void *_glfuncs, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+void gles2_glUniform4fv(void *_glfuncs, GLint location, GLsizei count, const GLfloat* value);
+void gles2_glUniform4i(void *_glfuncs, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+void gles2_glUniform4iv(void *_glfuncs, GLint location, GLsizei count, const GLint* value);
+void gles2_glUniformMatrix2fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gles2_glUniformMatrix3fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gles2_glUniformMatrix4fv(void *_glfuncs, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void gles2_glUseProgram(void *_glfuncs, GLuint program);
+void gles2_glValidateProgram(void *_glfuncs, GLuint program);
+void gles2_glVertexAttrib1f(void *_glfuncs, GLuint index, GLfloat x);
+void gles2_glVertexAttrib1fv(void *_glfuncs, GLuint index, const GLfloat* values);
+void gles2_glVertexAttrib2f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y);
+void gles2_glVertexAttrib2fv(void *_glfuncs, GLuint index, const GLfloat* values);
+void gles2_glVertexAttrib3f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z);
+void gles2_glVertexAttrib3fv(void *_glfuncs, GLuint index, const GLfloat* values);
+void gles2_glVertexAttrib4f(void *_glfuncs, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void gles2_glVertexAttrib4fv(void *_glfuncs, GLuint index, const GLfloat* values);
+void gles2_glVertexAttribPointer(void *_glfuncs, GLuint index, GLint size, GLenum gltype, GLboolean normalized, GLsizei stride, const GLvoid* offset);
+void gles2_glBindTexture(void *_glfuncs, GLenum target, GLuint texture);
+void gles2_glBlendFunc(void *_glfuncs, GLenum sfactor, GLenum dfactor);
+void gles2_glClear(void *_glfuncs, GLbitfield mask);
+void gles2_glClearColor(void *_glfuncs, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+void gles2_glClearStencil(void *_glfuncs, GLint s);
+void gles2_glColorMask(void *_glfuncs, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void gles2_glCopyTexImage2D(void *_glfuncs, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void gles2_glCopyTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void gles2_glCullFace(void *_glfuncs, GLenum mode);
+void gles2_glDeleteTextures(void *_glfuncs, GLsizei n, const GLuint* textures);
+void gles2_glDepthFunc(void *_glfuncs, GLenum glfunc);
+void gles2_glDepthMask(void *_glfuncs, GLboolean flag);
+void gles2_glDisable(void *_glfuncs, GLenum cap);
+void gles2_glDrawArrays(void *_glfuncs, GLenum mode, GLint first, GLsizei count);
+void gles2_glDrawElements(void *_glfuncs, GLenum mode, GLsizei count, GLenum gltype, const GLvoid* indices);
+void gles2_glEnable(void *_glfuncs, GLenum cap);
+void gles2_glFinish(void *_glfuncs);
+void gles2_glFlush(void *_glfuncs);
+void gles2_glFrontFace(void *_glfuncs, GLenum mode);
+void gles2_glGenTextures(void *_glfuncs, GLsizei n, GLuint* textures);
+void gles2_glGetBooleanv(void *_glfuncs, GLenum pname, GLboolean* params);
+GLenum gles2_glGetError(void *_glfuncs);
+void gles2_glGetFloatv(void *_glfuncs, GLenum pname, GLfloat* params);
+void gles2_glGetIntegerv(void *_glfuncs, GLenum pname, GLint* params);
+void gles2_glGetTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, GLfloat* params);
+void gles2_glGetTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, GLint* params);
+void gles2_glHint(void *_glfuncs, GLenum target, GLenum mode);
+GLboolean gles2_glIsEnabled(void *_glfuncs, GLenum cap);
+GLboolean gles2_glIsTexture(void *_glfuncs, GLuint texture);
+void gles2_glLineWidth(void *_glfuncs, GLfloat width);
+void gles2_glPixelStorei(void *_glfuncs, GLenum pname, GLint param);
+void gles2_glPolygonOffset(void *_glfuncs, GLfloat factor, GLfloat units);
+void gles2_glReadPixels(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum gltype, GLvoid* pixels);
+void gles2_glScissor(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+void gles2_glStencilFunc(void *_glfuncs, GLenum glfunc, GLint ref, GLuint mask);
+void gles2_glStencilMask(void *_glfuncs, GLuint mask);
+void gles2_glStencilOp(void *_glfuncs, GLenum fail, GLenum zfail, GLenum zpass);
+void gles2_glTexImage2D(void *_glfuncs, GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gles2_glTexParameterf(void *_glfuncs, GLenum target, GLenum pname, GLfloat param);
+void gles2_glTexParameterfv(void *_glfuncs, GLenum target, GLenum pname, const GLfloat* params);
+void gles2_glTexParameteri(void *_glfuncs, GLenum target, GLenum pname, GLint param);
+void gles2_glTexParameteriv(void *_glfuncs, GLenum target, GLenum pname, const GLint* params);
+void gles2_glTexSubImage2D(void *_glfuncs, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum gltype, const GLvoid* pixels);
+void gles2_glViewport(void *_glfuncs, GLint x, GLint y, GLsizei width, GLsizei height);
+
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/gl.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/gl.go
new file mode 100644
index 000000000..82c9d77cf
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/es2/gl.go
@@ -0,0 +1,2990 @@
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+// #cgo !darwin LDFLAGS: -lGL
+// #cgo darwin LDFLAGS: -framework OpenGL
+// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version ES2 API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gles2_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version ES2 is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version ES2 API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const (
+ FALSE = 0
+ TRUE = 1
+ NONE = 0
+
+ BYTE = 0x1400
+ UNSIGNED_BYTE = 0x1401
+ SHORT = 0x1402
+ UNSIGNED_SHORT = 0x1403
+ INT = 0x1404
+ UNSIGNED_INT = 0x1405
+ FLOAT = 0x1406
+ FIXED = 0x140C
+
+ COLOR_BUFFER_BIT = 0x00004000
+ DEPTH_BUFFER_BIT = 0x00000100
+ STENCIL_BUFFER_BIT = 0x00000400
+
+ ALWAYS = 0x0207
+ EQUAL = 0x0202
+ GEQUAL = 0x0206
+ GREATER = 0x0204
+ LEQUAL = 0x0203
+ LESS = 0x0201
+ NEVER = 0x0200
+ NOTEQUAL = 0x0205
+
+ DST_ALPHA = 0x0304
+ ONE = 1
+ ONE_MINUS_DST_ALPHA = 0x0305
+ ONE_MINUS_SRC_ALPHA = 0x0303
+ ONE_MINUS_SRC_COLOR = 0x0301
+ SRC_ALPHA = 0x0302
+ SRC_COLOR = 0x0300
+ ZERO = 0
+
+ DST_COLOR = 0x0306
+ ONE_MINUS_DST_COLOR = 0x0307
+ SRC_ALPHA_SATURATE = 0x0308
+
+ BACK = 0x0405
+ FRONT = 0x0404
+ FRONT_AND_BACK = 0x0408
+
+ BLEND = 0x0BE2
+ CULL_FACE = 0x0B44
+ DEPTH_TEST = 0x0B71
+ DITHER = 0x0BD0
+ POLYGON_OFFSET_FILL = 0x8037
+ SCISSOR_TEST = 0x0C11
+ STENCIL_TEST = 0x0B90
+ TEXTURE_2D = 0x0DE1
+
+ INVALID_ENUM = 0x0500
+ INVALID_FRAMEBUFFER_OPERATION = 0x0506
+ INVALID_OPERATION = 0x0502
+ INVALID_VALUE = 0x0501
+ NO_ERROR = 0
+ OUT_OF_MEMORY = 0x0505
+
+ LINEAR = 0x2601
+
+ CCW = 0x0901
+ CW = 0x0900
+
+ ALIASED_LINE_WIDTH_RANGE = 0x846E
+ ALIASED_POINT_SIZE_RANGE = 0x846D
+ ALPHA_BITS = 0x0D55
+ BLUE_BITS = 0x0D54
+ COLOR_CLEAR_VALUE = 0x0C22
+ COLOR_WRITEMASK = 0x0C23
+ CULL_FACE_MODE = 0x0B45
+ DEPTH_BITS = 0x0D56
+ DEPTH_CLEAR_VALUE = 0x0B73
+ DEPTH_FUNC = 0x0B74
+ DEPTH_RANGE = 0x0B70
+ DEPTH_WRITEMASK = 0x0B72
+ FRONT_FACE = 0x0B46
+ GREEN_BITS = 0x0D53
+ LINE_WIDTH = 0x0B21
+ MAX_TEXTURE_SIZE = 0x0D33
+ MAX_VIEWPORT_DIMS = 0x0D3A
+ PACK_ALIGNMENT = 0x0D05
+ POLYGON_OFFSET_FACTOR = 0x8038
+ POLYGON_OFFSET_UNITS = 0x2A00
+ RED_BITS = 0x0D52
+ SCISSOR_BOX = 0x0C10
+ STENCIL_BITS = 0x0D57
+ STENCIL_CLEAR_VALUE = 0x0B91
+ STENCIL_FAIL = 0x0B94
+ STENCIL_FUNC = 0x0B92
+ STENCIL_PASS_DEPTH_FAIL = 0x0B95
+ STENCIL_PASS_DEPTH_PASS = 0x0B96
+ STENCIL_REF = 0x0B97
+ STENCIL_VALUE_MASK = 0x0B93
+ STENCIL_WRITEMASK = 0x0B98
+ SUBPIXEL_BITS = 0x0D50
+ TEXTURE_BINDING_2D = 0x8069
+ UNPACK_ALIGNMENT = 0x0CF5
+ VIEWPORT = 0x0BA2
+
+ TEXTURE_MAG_FILTER = 0x2800
+ TEXTURE_MIN_FILTER = 0x2801
+ TEXTURE_WRAP_S = 0x2802
+ TEXTURE_WRAP_T = 0x2803
+
+ DONT_CARE = 0x1100
+ FASTEST = 0x1101
+ NICEST = 0x1102
+
+ GENERATE_MIPMAP_HINT = 0x8192
+
+ REPLACE = 0x1E01
+
+ INVERT = 0x150A
+
+ TEXTURE = 0x1702
+
+ ALPHA = 0x1906
+ DEPTH_COMPONENT = 0x1902
+ LUMINANCE = 0x1909
+ LUMINANCE_ALPHA = 0x190A
+ RGB = 0x1907
+ RGBA = 0x1908
+
+ RGB5_A1 = 0x8057
+ RGBA4 = 0x8056
+
+ UNSIGNED_SHORT_4_4_4_4 = 0x8033
+ UNSIGNED_SHORT_5_5_5_1 = 0x8034
+
+ LINES = 0x0001
+ LINE_LOOP = 0x0002
+ LINE_STRIP = 0x0003
+ POINTS = 0x0000
+ TRIANGLES = 0x0004
+ TRIANGLE_FAN = 0x0006
+ TRIANGLE_STRIP = 0x0005
+
+ DECR = 0x1E03
+ INCR = 0x1E02
+ KEEP = 0x1E00
+
+ EXTENSIONS = 0x1F03
+ RENDERER = 0x1F01
+ VENDOR = 0x1F00
+ VERSION = 0x1F02
+
+ NEAREST = 0x2600
+
+ LINEAR_MIPMAP_LINEAR = 0x2703
+ LINEAR_MIPMAP_NEAREST = 0x2701
+ NEAREST_MIPMAP_LINEAR = 0x2702
+ NEAREST_MIPMAP_NEAREST = 0x2700
+
+ CLAMP_TO_EDGE = 0x812F
+ REPEAT = 0x2901
+
+ CONSTANT_COLOR = 0x8001
+ ONE_MINUS_CONSTANT_COLOR = 0x8002
+ CONSTANT_ALPHA = 0x8003
+ ONE_MINUS_CONSTANT_ALPHA = 0x8004
+ BLEND_COLOR = 0x8005
+ FUNC_ADD = 0x8006
+ BLEND_EQUATION = 0x8009
+ BLEND_EQUATION_RGB = 0x8009
+ FUNC_SUBTRACT = 0x800A
+ FUNC_REVERSE_SUBTRACT = 0x800B
+ SAMPLE_ALPHA_TO_COVERAGE = 0x809E
+ SAMPLE_COVERAGE = 0x80A0
+ SAMPLE_BUFFERS = 0x80A8
+ SAMPLES = 0x80A9
+ SAMPLE_COVERAGE_VALUE = 0x80AA
+ SAMPLE_COVERAGE_INVERT = 0x80AB
+ BLEND_DST_RGB = 0x80C8
+ BLEND_SRC_RGB = 0x80C9
+ BLEND_DST_ALPHA = 0x80CA
+ BLEND_SRC_ALPHA = 0x80CB
+ DEPTH_COMPONENT16 = 0x81A5
+ UNSIGNED_SHORT_5_6_5 = 0x8363
+ MIRRORED_REPEAT = 0x8370
+ TEXTURE0 = 0x84C0
+ TEXTURE1 = 0x84C1
+ TEXTURE2 = 0x84C2
+ TEXTURE3 = 0x84C3
+ TEXTURE4 = 0x84C4
+ TEXTURE5 = 0x84C5
+ TEXTURE6 = 0x84C6
+ TEXTURE7 = 0x84C7
+ TEXTURE8 = 0x84C8
+ TEXTURE9 = 0x84C9
+ TEXTURE10 = 0x84CA
+ TEXTURE11 = 0x84CB
+ TEXTURE12 = 0x84CC
+ TEXTURE13 = 0x84CD
+ TEXTURE14 = 0x84CE
+ TEXTURE15 = 0x84CF
+ TEXTURE16 = 0x84D0
+ TEXTURE17 = 0x84D1
+ TEXTURE18 = 0x84D2
+ TEXTURE19 = 0x84D3
+ TEXTURE20 = 0x84D4
+ TEXTURE21 = 0x84D5
+ TEXTURE22 = 0x84D6
+ TEXTURE23 = 0x84D7
+ TEXTURE24 = 0x84D8
+ TEXTURE25 = 0x84D9
+ TEXTURE26 = 0x84DA
+ TEXTURE27 = 0x84DB
+ TEXTURE28 = 0x84DC
+ TEXTURE29 = 0x84DD
+ TEXTURE30 = 0x84DE
+ TEXTURE31 = 0x84DF
+ ACTIVE_TEXTURE = 0x84E0
+ MAX_RENDERBUFFER_SIZE = 0x84E8
+ INCR_WRAP = 0x8507
+ DECR_WRAP = 0x8508
+ TEXTURE_CUBE_MAP = 0x8513
+ TEXTURE_BINDING_CUBE_MAP = 0x8514
+ TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515
+ TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516
+ TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517
+ TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518
+ TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519
+ TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A
+ MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C
+ VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622
+ VERTEX_ATTRIB_ARRAY_SIZE = 0x8623
+ VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624
+ VERTEX_ATTRIB_ARRAY_TYPE = 0x8625
+ CURRENT_VERTEX_ATTRIB = 0x8626
+ VERTEX_ATTRIB_ARRAY_POINTER = 0x8645
+ NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2
+ COMPRESSED_TEXTURE_FORMATS = 0x86A3
+ BUFFER_SIZE = 0x8764
+ BUFFER_USAGE = 0x8765
+ STENCIL_BACK_FUNC = 0x8800
+ STENCIL_BACK_FAIL = 0x8801
+ STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802
+ STENCIL_BACK_PASS_DEPTH_PASS = 0x8803
+ BLEND_EQUATION_ALPHA = 0x883D
+ MAX_VERTEX_ATTRIBS = 0x8869
+ VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A
+ MAX_TEXTURE_IMAGE_UNITS = 0x8872
+ ARRAY_BUFFER = 0x8892
+ ELEMENT_ARRAY_BUFFER = 0x8893
+ ARRAY_BUFFER_BINDING = 0x8894
+ ELEMENT_ARRAY_BUFFER_BINDING = 0x8895
+ VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F
+ STREAM_DRAW = 0x88E0
+ STATIC_DRAW = 0x88E4
+ DYNAMIC_DRAW = 0x88E8
+ FRAGMENT_SHADER = 0x8B30
+ VERTEX_SHADER = 0x8B31
+ MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C
+ MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D
+ SHADER_TYPE = 0x8B4F
+ FLOAT_VEC2 = 0x8B50
+ FLOAT_VEC3 = 0x8B51
+ FLOAT_VEC4 = 0x8B52
+ INT_VEC2 = 0x8B53
+ INT_VEC3 = 0x8B54
+ INT_VEC4 = 0x8B55
+ BOOL = 0x8B56
+ BOOL_VEC2 = 0x8B57
+ BOOL_VEC3 = 0x8B58
+ BOOL_VEC4 = 0x8B59
+ FLOAT_MAT2 = 0x8B5A
+ FLOAT_MAT3 = 0x8B5B
+ FLOAT_MAT4 = 0x8B5C
+ SAMPLER_2D = 0x8B5E
+ SAMPLER_CUBE = 0x8B60
+ DELETE_STATUS = 0x8B80
+ COMPILE_STATUS = 0x8B81
+ LINK_STATUS = 0x8B82
+ VALIDATE_STATUS = 0x8B83
+ INFO_LOG_LENGTH = 0x8B84
+ ATTACHED_SHADERS = 0x8B85
+ ACTIVE_UNIFORMS = 0x8B86
+ ACTIVE_UNIFORM_MAX_LENGTH = 0x8B87
+ SHADER_SOURCE_LENGTH = 0x8B88
+ ACTIVE_ATTRIBUTES = 0x8B89
+ ACTIVE_ATTRIBUTE_MAX_LENGTH = 0x8B8A
+ SHADING_LANGUAGE_VERSION = 0x8B8C
+ CURRENT_PROGRAM = 0x8B8D
+ IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A
+ IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B
+ STENCIL_BACK_REF = 0x8CA3
+ STENCIL_BACK_VALUE_MASK = 0x8CA4
+ STENCIL_BACK_WRITEMASK = 0x8CA5
+ FRAMEBUFFER_BINDING = 0x8CA6
+ RENDERBUFFER_BINDING = 0x8CA7
+ FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0
+ FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2
+ FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3
+ FRAMEBUFFER_COMPLETE = 0x8CD5
+ FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6
+ FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7
+ FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9
+ FRAMEBUFFER_UNSUPPORTED = 0x8CDD
+ COLOR_ATTACHMENT0 = 0x8CE0
+ DEPTH_ATTACHMENT = 0x8D00
+ STENCIL_ATTACHMENT = 0x8D20
+ FRAMEBUFFER = 0x8D40
+ RENDERBUFFER = 0x8D41
+ RENDERBUFFER_WIDTH = 0x8D42
+ RENDERBUFFER_HEIGHT = 0x8D43
+ RENDERBUFFER_INTERNAL_FORMAT = 0x8D44
+ STENCIL_INDEX8 = 0x8D48
+ RENDERBUFFER_RED_SIZE = 0x8D50
+ RENDERBUFFER_GREEN_SIZE = 0x8D51
+ RENDERBUFFER_BLUE_SIZE = 0x8D52
+ RENDERBUFFER_ALPHA_SIZE = 0x8D53
+ RENDERBUFFER_DEPTH_SIZE = 0x8D54
+ RENDERBUFFER_STENCIL_SIZE = 0x8D55
+ RGB565 = 0x8D62
+ LOW_FLOAT = 0x8DF0
+ MEDIUM_FLOAT = 0x8DF1
+ HIGH_FLOAT = 0x8DF2
+ LOW_INT = 0x8DF3
+ MEDIUM_INT = 0x8DF4
+ HIGH_INT = 0x8DF5
+ SHADER_BINARY_FORMATS = 0x8DF8
+ NUM_SHADER_BINARY_FORMATS = 0x8DF9
+ SHADER_COMPILER = 0x8DFA
+ MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB
+ MAX_VARYING_VECTORS = 0x8DFC
+ MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD
+)
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glActiveTexture.xml
+func (gl *GL) ActiveTexture(texture glbase.Enum) {
+ C.gles2_glActiveTexture(gl.funcs, C.GLenum(texture))
+}
+
+// AttachShader attaches a shader object to a program object.
+//
+// In order to create an executable, there must be a way to specify the list
+// of things that will be linked together. Program objects provide this
+// mechanism. Shaders that are to be linked together in a program object must
+// first be attached to that program object. This indicates that shader will
+// be included in link operations that will be performed on program.
+//
+// All operations that can be performed on a shader object are valid whether
+// or not the shader object is attached to a program object. It is
+// permissible to attach a shader object to a program object before source
+// code has been loaded into the shader object or before the shader object
+// has been compiled. It is permissible to attach multiple shader objects of
+// the same type because each may contain a portion of the complete shader.
+// It is also permissible to attach a shader object to more than one program
+// object. If a shader object is deleted while it is attached to a program
+// object, it will be flagged for deletion, and deletion will not occur until
+// DetachShader is called to detach it from all program objects to which it
+// is attached.
+//
+// Error GL.INVALID_VALUE is generated if either program or shader is not a
+// value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+// is not a program object. GL.INVALID_OPERATION is generated if shader is
+// not a shader object. GL.INVALID_OPERATION is generated if shader is
+// already attached to program. GL.INVALID_OPERATION is generated if
+// AttachShader is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// AttachShader is available in GL version 2.0 or greater.
+func (gl *GL) AttachShader(program glbase.Program, shader glbase.Shader) {
+ C.gles2_glAttachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// BindAttribLocation associates a user-defined attribute variable in the program
+// object specified by program with a generic vertex attribute index. The name
+// parameter specifies the name of the vertex shader attribute variable to
+// which index is to be bound. When program is made part of the current state,
+// values provided via the generic vertex attribute index will modify the
+// value of the user-defined attribute variable specified by name.
+//
+// If name refers to a matrix attribute variable, index refers to the first
+// column of the matrix. Other matrix columns are then automatically bound to
+// locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+// matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+// type mat4.
+//
+// This command makes it possible for vertex shaders to use descriptive names
+// for attribute variables rather than generic variables that are numbered
+// from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+// attribute index are part of current state, just like standard vertex
+// attributes such as color, normal, and vertex position. If a different
+// program object is made current by calling UseProgram, the generic vertex
+// attributes are tracked in such a way that the same values will be observed
+// by attributes in the new program object that are also bound to index.
+//
+// Attribute variable name-to-generic attribute index bindings for a program
+// object can be explicitly assigned at any time by calling
+// BindAttribLocation. Attribute bindings do not go into effect until
+// LinkProgram is called. After a program object has been linked
+// successfully, the index values for generic attributes remain fixed (and
+// their values can be queried) until the next link command occurs.
+//
+// Applications are not allowed to bind any of the standard OpenGL vertex
+// attributes using this command, as they are bound automatically when
+// needed. Any attribute binding that occurs after the program object has
+// been linked will not take effect until the next time the program object is
+// linked.
+//
+// If name was bound previously, that information is lost. Thus you cannot
+// bind one user-defined attribute variable to multiple indices, but you can
+// bind multiple user-defined attribute variables to the same index.
+//
+// Applications are allowed to bind more than one user-defined attribute
+// variable to the same generic vertex attribute index. This is called
+// aliasing, and it is allowed only if just one of the aliased attributes is
+// active in the executable program, or if no path through the shader
+// consumes more than one attribute of a set of attributes aliased to the
+// same location. The compiler and linker are allowed to assume that no
+// aliasing is done and are free to employ optimizations that work only in
+// the absence of aliasing. OpenGL implementations are not required to do
+// error checking to detect aliasing. Because there is no way to bind
+// standard attributes, it is not possible to alias generic attributes with
+// conventional ones (except for generic attribute 0).
+//
+// BindAttribLocation can be called before any vertex shader objects are
+// bound to the specified program object. It is also permissible to bind a
+// generic attribute index to an attribute variable name that is never used
+// in a vertex shader.
+//
+// Active attributes that are not explicitly bound will be bound by the
+// linker when LinkProgram is called. The locations assigned can be queried
+// by calling GetAttribLocation.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS.
+// GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+// GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+// GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) BindAttribLocation(program glbase.Program, index glbase.Attrib, name string) {
+ name_cstr := C.CString(name)
+ C.gles2_glBindAttribLocation(gl.funcs, C.GLuint(program), C.GLuint(index), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+}
+
+// BindBuffer creates or puts in use a named buffer object.
+// Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+// GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+// and buffer set to the name of the new buffer object binds the buffer
+// object name to the target. When a buffer object is bound to a target, the
+// previous binding for that target is automatically broken.
+//
+// Buffer object names are unsigned integers. The value zero is reserved, but
+// there is no default buffer object for each buffer object target. Instead,
+// buffer set to zero effectively unbinds any buffer object previously bound,
+// and restores client memory usage for that buffer object target. Buffer
+// object names and the corresponding buffer object contents are local to the
+// shared display-list space (see XCreateContext) of the current GL rendering
+// context; two rendering contexts share buffer object names only if they
+// also share display lists.
+//
+// GenBuffers may be called to generate a set of new buffer object names.
+//
+// The state of a buffer object immediately after it is first bound is an
+// unmapped zero-sized memory buffer with GL.READ_WRITE access and
+// GL.STATIC_DRAW usage.
+//
+// While a non-zero buffer object name is bound, GL operations on the target
+// to which it is bound affect the bound buffer object, and queries of the
+// target to which it is bound return state from the bound buffer object.
+// While buffer object name zero is bound, as in the initial state, attempts
+// to modify or query state on the target to which it is bound generates an
+// GL.INVALID_OPERATION error.
+//
+// When vertex array pointer state is changed, for example by a call to
+// NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+// is copied into the corresponding client state for the vertex array type
+// being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+// non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+// array pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+// target, the indices parameter of DrawElements, DrawRangeElements, or
+// MultiDrawElements that is traditionally interpreted as a pointer to
+// client-side memory is instead interpreted as an offset within the buffer
+// object measured in basic machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+// target, the following commands are affected: GetCompressedTexImage,
+// GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+// GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+// pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory where the pixels are to be packed is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+// target, the following commands are affected: Bitmap, ColorSubTable,
+// ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+// CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+// CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+// DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+// TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+// The pointer parameter that is traditionally interpreted as a pointer to
+// client-side memory from which the pixels are to be unpacked is instead
+// interpreted as an offset within the buffer object measured in basic
+// machine units.
+//
+// A buffer object binding created with BindBuffer remains active until a
+// different buffer object name is bound to the same target, or until the
+// bound buffer object is deleted with DeleteBuffers.
+//
+// Once created, a named buffer object may be re-bound to any target as often
+// as needed. However, the GL implementation may make choices about how to
+// optimize the storage of a buffer object based on its initial binding
+// target.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the allowable
+// values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// BindBuffer is available in GL version 1.5 or greater.
+func (gl *GL) BindBuffer(target glbase.Enum, buffer glbase.Buffer) {
+ C.gles2_glBindBuffer(gl.funcs, C.GLenum(target), C.GLuint(buffer))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindFramebuffer.xml
+func (gl *GL) BindFramebuffer(target glbase.Enum, framebuffer glbase.Framebuffer) {
+ C.gles2_glBindFramebuffer(gl.funcs, C.GLenum(target), C.GLuint(framebuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindRenderbuffer.xml
+func (gl *GL) BindRenderbuffer(target glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gles2_glBindRenderbuffer(gl.funcs, C.GLenum(target), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendColor.xml
+func (gl *GL) BlendColor(red, green, blue, alpha glbase.Clampf) {
+ C.gles2_glBlendColor(gl.funcs, C.GLclampf(red), C.GLclampf(green), C.GLclampf(blue), C.GLclampf(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquation.xml
+func (gl *GL) BlendEquation(mode glbase.Enum) {
+ C.gles2_glBlendEquation(gl.funcs, C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendEquationSeparate.xml
+func (gl *GL) BlendEquationSeparate(modeRGB, modeAlpha glbase.Enum) {
+ C.gles2_glBlendEquationSeparate(gl.funcs, C.GLenum(modeRGB), C.GLenum(modeAlpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFuncSeparate.xml
+func (gl *GL) BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha glbase.Enum) {
+ C.gles2_glBlendFuncSeparate(gl.funcs, C.GLenum(srcRGB), C.GLenum(dstRGB), C.GLenum(srcAlpha), C.GLenum(dstAlpha))
+}
+
+// BufferData creates a new data store for the buffer object currently
+// bound to target. Any pre-existing data store is deleted. The new data
+// store is created with the specified size in bytes and usage. If data is
+// not nil, it must be a slice that is used to initialize the data store.
+// In that case the size parameter is ignored and the store size will match
+// the slice data size.
+//
+// In its initial state, the new data store is not mapped, it has a NULL
+// mapped pointer, and its mapped access is GL.READ_WRITE.
+//
+// The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+// GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+// GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+// or GL.UNIFORM_BUFFER.
+//
+// The usage parameter is a hint to the GL implementation as to how a buffer
+// object's data store will be accessed. This enables the GL implementation
+// to make more intelligent decisions that may significantly impact buffer
+// object performance. It does not, however, constrain the actual usage of
+// the data store. usage can be broken down into two parts: first, the
+// frequency of access (modification and usage), and second, the nature of
+// that access.
+//
+// A usage frequency of STREAM and nature of DRAW is specified via the
+// constant GL.STREAM_DRAW, for example.
+//
+// The usage frequency of access may be one of:
+//
+// STREAM
+// The data store contents will be modified once and used at most a few times.
+//
+// STATIC
+// The data store contents will be modified once and used many times.
+//
+// DYNAMIC
+// The data store contents will be modified repeatedly and used many times.
+//
+// The usage nature of access may be one of:
+//
+// DRAW
+// The data store contents are modified by the application, and used as
+// the source for GL drawing and image specification commands.
+//
+// READ
+// The data store contents are modified by reading data from the GL,
+// and used to return that data when queried by the application.
+//
+// COPY
+// The data store contents are modified by reading data from the GL,
+// and used as the source for GL drawing and image specification
+// commands.
+//
+// Clients must align data elements consistent with the requirements of the
+// client platform, with an additional base-level requirement that an offset
+// within a buffer to a datum comprising N bytes be a multiple of N.
+//
+// Error GL.INVALID_ENUM is generated if target is not one of the accepted
+// buffer targets. GL.INVALID_ENUM is generated if usage is not
+// GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+// GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+// GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+// GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+// bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+// create a data store with the specified size.
+func (gl *GL) BufferData(target glbase.Enum, size int, data interface{}, usage glbase.Enum) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ C.gles2_glBufferData(gl.funcs, C.GLenum(target), C.GLsizeiptr(size), data_ptr, C.GLenum(usage))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBufferSubData.xml
+func (gl *GL) BufferSubData(target glbase.Enum, offset, size int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gles2_glBufferSubData(gl.funcs, C.GLenum(target), C.GLintptr(offset), C.GLsizeiptr(size), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCheckFramebufferStatus.xml
+func (gl *GL) CheckFramebufferStatus(target glbase.Enum) glbase.Enum {
+ glresult := C.gles2_glCheckFramebufferStatus(gl.funcs, C.GLenum(target))
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearDepthf.xml
+func (gl *GL) ClearDepthf(depth glbase.Clampf) {
+ C.gles2_glClearDepthf(gl.funcs, C.GLclampf(depth))
+}
+
+// CompileShader compiles the source code strings that have been stored in
+// the shader object specified by shader.
+//
+// The compilation status will be stored as part of the shader object's
+// state. This value will be set to GL.TRUE if the shader was compiled without
+// errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+// calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+//
+// Compilation of a shader can fail for a number of reasons as specified by
+// the OpenGL Shading Language Specification. Whether or not the compilation
+// was successful, information about the compilation can be obtained from the
+// shader object's information log by calling GetShaderInfoLog.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_OPERATION is generated if CompileShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CompileShader is available in GL version 2.0 or greater.
+func (gl *GL) CompileShader(shader glbase.Shader) {
+ C.gles2_glCompileShader(gl.funcs, C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexImage2D.xml
+func (gl *GL) CompressedTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, width, height, border, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gles2_glCompressedTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLsizei(imageSize), data_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCompressedTexSubImage2D.xml
+func (gl *GL) CompressedTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format glbase.Enum, imageSize int, data interface{}) {
+ var data_ptr unsafe.Pointer
+ var data_v = reflect.ValueOf(data)
+ if data != nil && data_v.Kind() != reflect.Slice {
+ panic("parameter data must be a slice")
+ }
+ if data != nil {
+ data_ptr = unsafe.Pointer(data_v.Index(0).Addr().Pointer())
+ }
+ C.gles2_glCompressedTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLsizei(imageSize), data_ptr)
+}
+
+// CreateProgram creates an empty program object and returns a non-zero
+// value by which it can be referenced. A program object is an object to
+// which shader objects can be attached. This provides a mechanism to specify
+// the shader objects that will be linked to create a program. It also
+// provides a means for checking the compatibility of the shaders that will
+// be used to create a program (for instance, checking the compatibility
+// between a vertex shader and a fragment shader). When no longer needed as
+// part of a program object, shader objects can be detached.
+//
+// One or more executables are created in a program object by successfully
+// attaching shader objects to it with AttachShader, successfully compiling
+// the shader objects with CompileShader, and successfully linking the
+// program object with LinkProgram. These executables are made part of
+// current state when UseProgram is called. Program objects can be deleted
+// by calling DeleteProgram. The memory associated with the program object
+// will be deleted when it is no longer part of current rendering state for
+// any context.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// This function returns 0 if an error occurs creating the program object.
+//
+// Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// CreateProgram is available in GL version 2.0 or greater.
+func (gl *GL) CreateProgram() glbase.Program {
+ glresult := C.gles2_glCreateProgram(gl.funcs)
+ return glbase.Program(glresult)
+}
+
+// CreateShader creates an empty shader object and returns a non-zero value
+// by which it can be referenced. A shader object is used to maintain the
+// source code strings that define a shader. shaderType indicates the type of
+// shader to be created.
+//
+// Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+// shader that is intended to run on the programmable vertex processor and
+// replace the fixed functionality vertex processing in OpenGL. A shader of
+// type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+// programmable fragment processor and replace the fixed functionality
+// fragment processing in OpenGL.
+//
+// When created, a shader object's GL.SHADER_TYPE parameter is set to either
+// GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+// shaderType.
+//
+// Like display lists and texture objects, the name space for shader objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// This function returns 0 if an error occurs creating the shader object.
+//
+// Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+// GL.INVALID_OPERATION is generated if CreateShader is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// CreateShader is available in GL version 2.0 or greater.
+func (gl *GL) CreateShader(gltype glbase.Enum) glbase.Shader {
+ glresult := C.gles2_glCreateShader(gl.funcs, C.GLenum(gltype))
+ return glbase.Shader(glresult)
+}
+
+// DeleteBuffers deletes the buffer objects whose names are stored in the
+// buffers slice.
+//
+// After a buffer object is deleted, it has no contents, and its name is free
+// for reuse (for example by GenBuffers). If a buffer object that is
+// currently bound is deleted, the binding reverts to 0 (the absence of any
+// buffer object, which reverts to client memory usage).
+//
+// DeleteBuffers silently ignores 0's and names that do not correspond to
+// existing buffer objects.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if DeleteBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// DeleteBuffers is available in GL version 1.5 or greater.
+func (gl *GL) DeleteBuffers(buffers []glbase.Buffer) {
+ n := len(buffers)
+ if n == 0 {
+ return
+ }
+ C.gles2_glDeleteBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+}
+
+// DeleteFramebuffers deletes the framebuffer objects whose names are
+// stored in the framebuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in framebuffers, as are other unused
+// names. Once a framebuffer object is deleted, its name is again unused and
+// it has no attachments. If a framebuffer that is currently bound to one or
+// more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+// it is as though BindFramebuffer had been executed with the corresponding
+// target and framebuffer zero.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteFramebuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteFramebuffers(framebuffers []glbase.Framebuffer) {
+ n := len(framebuffers)
+ if n == 0 {
+ return
+ }
+ C.gles2_glDeleteFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+}
+
+// DeleteProgram frees the memory and invalidates the name associated with
+// the program object specified by program. This command effectively undoes
+// the effects of a call to CreateProgram.
+//
+// If a program object is in use as part of current rendering state, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// part of current state for any rendering context. If a program object to be
+// deleted has shader objects attached to it, those shader objects will be
+// automatically detached but not deleted unless they have already been
+// flagged for deletion by a previous call to DeleteShader. A value of 0
+// for program will be silently ignored.
+//
+// To determine whether a program object has been flagged for deletion, call
+// GetProgram with arguments program and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL.
+//
+// DeleteProgram is available in GL version 2.0 or greater.
+func (gl *GL) DeleteProgram(program glbase.Program) {
+ C.gles2_glDeleteProgram(gl.funcs, C.GLuint(program))
+}
+
+// DeleteRenderbuffers deletes the renderbuffer objects whose names are stored
+// in the renderbuffers slice. The name zero is reserved by the GL and
+// is silently ignored, should it occur in renderbuffers, as are other unused
+// names. Once a renderbuffer object is deleted, its name is again unused and
+// it has no contents. If a renderbuffer that is currently bound to the
+// target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+// been executed with a target of GL.RENDERBUFFER and a name of zero.
+//
+// If a renderbuffer object is attached to one or more attachment points in
+// the currently bound framebuffer, then it as if FramebufferRenderbuffer
+// had been called, with a renderbuffer of zero for each attachment point to
+// which this image was attached in the currently bound framebuffer. In other
+// words, this renderbuffer object is first detached from all attachment
+// ponits in the currently bound framebuffer. Note that the renderbuffer
+// image is specifically not detached from any non-bound framebuffers.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) DeleteRenderbuffers(renderbuffers []glbase.Renderbuffer) {
+ n := len(renderbuffers)
+ if n == 0 {
+ return
+ }
+ C.gles2_glDeleteRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+}
+
+// DeleteShader frees the memory and invalidates the name associated with
+// the shader object specified by shader. This command effectively undoes the
+// effects of a call to CreateShader.
+//
+// If a shader object to be deleted is attached to a program object, it will
+// be flagged for deletion, but it will not be deleted until it is no longer
+// attached to any program object, for any rendering context (it must
+// be detached from wherever it was attached before it will be deleted). A
+// value of 0 for shader will be silently ignored.
+//
+// To determine whether an object has been flagged for deletion, call
+// GetShader with arguments shader and GL.DELETE_STATUS.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL.
+//
+// DeleteShader is available in GL version 2.0 or greater.
+func (gl *GL) DeleteShader(shader glbase.Shader) {
+ C.gles2_glDeleteShader(gl.funcs, C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthRangef.xml
+func (gl *GL) DepthRangef(zNear, zFar glbase.Clampf) {
+ C.gles2_glDepthRangef(gl.funcs, C.GLclampf(zNear), C.GLclampf(zFar))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDetachShader.xml
+func (gl *GL) DetachShader(program glbase.Program, shader glbase.Shader) {
+ C.gles2_glDetachShader(gl.funcs, C.GLuint(program), C.GLuint(shader))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisableVertexAttribArray.xml
+func (gl *GL) DisableVertexAttribArray(index glbase.Attrib) {
+ C.gles2_glDisableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnableVertexAttribArray.xml
+func (gl *GL) EnableVertexAttribArray(index glbase.Attrib) {
+ C.gles2_glEnableVertexAttribArray(gl.funcs, C.GLuint(index))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFramebufferRenderbuffer.xml
+func (gl *GL) FramebufferRenderbuffer(target, attachment, renderbuffertarget glbase.Enum, renderbuffer glbase.Renderbuffer) {
+ C.gles2_glFramebufferRenderbuffer(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(renderbuffertarget), C.GLuint(renderbuffer))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFramebufferTexture2D.xml
+func (gl *GL) FramebufferTexture2D(target, attachment, textarget glbase.Enum, texture glbase.Texture, level int) {
+ C.gles2_glFramebufferTexture2D(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(textarget), C.GLuint(texture), C.GLint(level))
+}
+
+// GenBuffers returns n buffer object names. There is no guarantee that
+// the names form a contiguous set of integers; however, it is guaranteed
+// that none of the returned names was in use immediately before the call to
+// GenBuffers.
+//
+// Buffer object names returned by a call to GenBuffers are not returned by
+// subsequent calls, unless they are first deleted with DeleteBuffers.
+//
+// No buffer objects are associated with the returned buffer object names
+// until they are first bound by calling BindBuffer.
+//
+// Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+// is generated if GenBuffers is executed between the execution of Begin
+// and the corresponding execution of End.
+//
+// GenBuffers is available in GL version 1.5 or greater.
+func (gl *GL) GenBuffers(n int) []glbase.Buffer {
+ if n == 0 {
+ return nil
+ }
+ buffers := make([]glbase.Buffer, n)
+ C.gles2_glGenBuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&buffers[0])))
+ return buffers
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGenerateMipmap.xml
+func (gl *GL) GenerateMipmap(target glbase.Enum) {
+ C.gles2_glGenerateMipmap(gl.funcs, C.GLenum(target))
+}
+
+// GenFramebuffers returns n framebuffer object names in ids. There is no
+// guarantee that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenFramebuffers.
+//
+// Framebuffer object names returned by a call to GenFramebuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteFramebuffers.
+//
+// The names returned in ids are marked as used, for the purposes of
+// GenFramebuffers only, but they acquire state and type only when they are
+// first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+func (gl *GL) GenFramebuffers(n int) []glbase.Framebuffer {
+ if n == 0 {
+ return nil
+ }
+ framebuffers := make([]glbase.Framebuffer, n)
+ C.gles2_glGenFramebuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&framebuffers[0])))
+ return framebuffers
+}
+
+// GenRenderbuffers returns n renderbuffer object names in renderbuffers.
+// There is no guarantee that the names form a contiguous set of integers;
+// however, it is guaranteed that none of the returned names was in use
+// immediately before the call to GenRenderbuffers.
+//
+// Renderbuffer object names returned by a call to GenRenderbuffers are not
+// returned by subsequent calls, unless they are first deleted with
+// DeleteRenderbuffers.
+//
+// The names returned in renderbuffers are marked as used, for the purposes
+// of GenRenderbuffers only, but they acquire state and type only when they
+// are first bound.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenRenderbuffers is available in GL version 3.0 or greater.
+func (gl *GL) GenRenderbuffers(n int) []glbase.Renderbuffer {
+ if n == 0 {
+ return nil
+ }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ C.gles2_glGenRenderbuffers(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&renderbuffers[0])))
+ return renderbuffers
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveAttrib.xml
+func (gl *GL) GetActiveAttrib(program glbase.Program, index glbase.Attrib, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gles2_glGetActiveAttrib(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetActiveUniform.xml
+func (gl *GL) GetActiveUniform(program glbase.Program, index uint32, bufSize int32, length []int32, size []int, gltype []glbase.Enum, name []byte) {
+ C.gles2_glGetActiveUniform(gl.funcs, C.GLuint(program), C.GLuint(index), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLint)(unsafe.Pointer(&size[0])), (*C.GLenum)(unsafe.Pointer(&gltype[0])), (*C.GLchar)(unsafe.Pointer(&name[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetAttachedShaders.xml
+func (gl *GL) GetAttachedShaders(program glbase.Program, maxcount int32, count []int, shaders []glbase.Shader) {
+ C.gles2_glGetAttachedShaders(gl.funcs, C.GLuint(program), C.GLsizei(maxcount), (*C.GLsizei)(unsafe.Pointer(&count[0])), (*C.GLuint)(unsafe.Pointer(&shaders[0])))
+}
+
+// GetAttribLocation queries the previously linked program object specified
+// by program for the attribute variable specified by name and returns the
+// index of the generic vertex attribute that is bound to that attribute
+// variable. If name is a matrix attribute variable, the index of the first
+// column of the matrix is returned. If the named attribute variable is not
+// an active attribute in the specified program object or if name starts with
+// the reserved prefix "gl_", a value of -1 is returned.
+//
+// The association between an attribute variable name and a generic attribute
+// index can be specified at any time by calling BindAttribLocation.
+// Attribute bindings do not go into effect until LinkProgram is called.
+// After a program object has been linked successfully, the index values for
+// attribute variables remain fixed until the next link command occurs. The
+// attribute values can only be queried after a link if the link was
+// successful. GetAttribLocation returns the binding that actually went
+// into effect the last time LinkProgram was called for the specified
+// program object. Attribute bindings that have been specified since the last
+// link operation are not returned by GetAttribLocation.
+//
+// Error GL_INVALID_OPERATION is generated if program is not a value
+// generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+// a program object. GL_INVALID_OPERATION is generated if program has not
+// been successfully linked. GL_INVALID_OPERATION is generated if
+// GetAttribLocation is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// GetAttribLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetAttribLocation(program glbase.Program, name string) glbase.Attrib {
+ name_cstr := C.CString(name)
+ glresult := C.gles2_glGetAttribLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Attrib(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBufferParameteriv.xml
+func (gl *GL) GetBufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gles2_glGetBufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFramebufferAttachmentParameteriv.xml
+func (gl *GL) GetFramebufferAttachmentParameteriv(target, attachment, pname glbase.Enum, params []int32) {
+ C.gles2_glGetFramebufferAttachmentParameteriv(gl.funcs, C.GLenum(target), C.GLenum(attachment), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// GetProgramiv returns in params the value of a parameter for a specific
+// program object. The following parameters are defined:
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if program is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.LINK_STATUS
+// params returns GL.TRUE if the last link operation on program was
+// successful, and GL.FALSE otherwise.
+//
+// GL.VALIDATE_STATUS
+// params returns GL.TRUE or if the last validation operation on
+// program was successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// program including the null termination character (the size of
+// the character buffer required to store the information log). If
+// program has no information log, a value of 0 is returned.
+//
+// GL.ATTACHED_SHADERS
+// params returns the number of shader objects attached to program.
+//
+// GL.ACTIVE_ATTRIBUTES
+// params returns the number of active attribute variables for program.
+//
+// GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+// params returns the length of the longest active attribute name for
+// program, including the null termination character (the size of
+// the character buffer required to store the longest attribute name).
+// If no active attributes exist, 0 is returned.
+//
+// GL.ACTIVE_UNIFORMS
+// params returns the number of active uniform variables for program.
+//
+// GL.ACTIVE_UNIFORM_MAX_LENGTH
+// params returns the length of the longest active uniform variable
+// name for program, including the null termination character (i.e.,
+// the size of the character buffer required to store the longest
+// uniform variable name). If no active uniform variables exist, 0 is
+// returned.
+//
+// GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+// params returns a symbolic constant indicating the buffer mode used
+// when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+// or GL.INTERLEAVED_ATTRIBS.
+//
+// GL.TRANSFORM_FEEDBACK_VARYINGS
+// params returns the number of varying variables to capture in transform
+// feedback mode for the program.
+//
+// GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+// params returns the length of the longest variable name to be used for
+// transform feedback, including the null-terminator.
+//
+// GL.GEOMETRY_VERTICES_OUT
+// params returns the maximum number of vertices that the geometry shader in
+// program will output.
+//
+// GL.GEOMETRY_INPUT_TYPE
+// params returns a symbolic constant indicating the primitive type accepted
+// as input to the geometry shader contained in program.
+//
+// GL.GEOMETRY_OUTPUT_TYPE
+// params returns a symbolic constant indicating the primitive type that will
+// be output by the geometry shader contained in program.
+//
+// GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+// available only if the GL version 3.1 or greater.
+//
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+// GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+// greater.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+// program object. GL.INVALID_OPERATION is generated if pname is
+// GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+// GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+// GL.INVALID_ENUM is generated if pname is not an accepted value.
+func (gl *GL) GetProgramiv(program glbase.Program, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gles2_glGetProgramiv(gl.funcs, C.GLuint(program), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetProgramInfoLog returns the information log for the specified program
+// object. The information log for a program object is modified when the
+// program object is linked or validated.
+//
+// The information log for a program object is either an empty string, or a
+// string containing information about the last link operation, or a string
+// containing information about the last validation operation. It may contain
+// diagnostic messages, warning messages, and other information. When a
+// program object is created, its information log will be a string of length
+// 0, and the size of the current log can be obtained by calling GetProgramiv
+// with the value GL.INFO_LOG_LENGTH.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated
+// by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+// program object.
+func (gl *GL) GetProgramInfoLog(program glbase.Program) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gles2_glGetProgramInfoLog(gl.funcs, C.GLuint(program), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetRenderbufferParameteriv.xml
+func (gl *GL) GetRenderbufferParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gles2_glGetRenderbufferParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// GetShaderiv GetShader returns in params the value of a parameter for a specific
+// shader object. The following parameters are defined:
+//
+// GL.SHADER_TYPE
+// params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+// and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+//
+// GL.DELETE_STATUS
+// params returns GL.TRUE if shader is currently flagged for deletion,
+// and GL.FALSE otherwise.
+//
+// GL.COMPILE_STATUS
+// params returns GL.TRUE if the last compile operation on shader was
+// successful, and GL.FALSE otherwise.
+//
+// GL.INFO_LOG_LENGTH
+// params returns the number of characters in the information log for
+// shader including the null termination character (the size of the
+// character buffer required to store the information log). If shader has
+// no information log, a value of 0 is returned.
+//
+// GL.SHADER_SOURCE_LENGTH
+// params returns the length of the concatenation of the source strings
+// that make up the shader source for the shader, including the null
+// termination character. (the size of the character buffer
+// required to store the shader source). If no source code exists, 0 is
+// returned.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+// shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+// value. GL.INVALID_OPERATION is generated if GetShader is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderiv is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderiv(shader glbase.Shader, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gles2_glGetShaderiv(gl.funcs, C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetShaderInfoLog returns the information log for the specified shader
+// object. The information log for a shader object is modified when the
+// shader is compiled.
+//
+// The information log for a shader object is a string that may contain
+// diagnostic messages, warning messages, and other information about the
+// last compile operation. When a shader object is created, its information
+// log will be a string of length 0, and the size of the current log can be
+// obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+//
+// The information log for a shader object is the OpenGL implementer's
+// primary mechanism for conveying information about the compilation process.
+// Therefore, the information log can be helpful to application developers
+// during the development process, even when compilation is successful.
+// Application developers should not expect different OpenGL implementations
+// to produce identical information logs.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+// GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetShaderInfoLog is available in GL version 2.0 or greater.
+func (gl *GL) GetShaderInfoLog(shader glbase.Shader) []byte {
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ C.gles2_glGetShaderInfoLog(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length)), (*C.GLchar)(unsafe.Pointer(&infoLog[0])))
+ return infoLog
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetShaderPrecisionFormat.xml
+func (gl *GL) GetShaderPrecisionFormat(shadertype, precisionType glbase.Enum, range_, precision []int32) {
+ C.gles2_glGetShaderPrecisionFormat(gl.funcs, C.GLenum(shadertype), C.GLenum(precisionType), (*C.GLint)(unsafe.Pointer(&range_[0])), (*C.GLint)(unsafe.Pointer(&precision[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetShaderSource.xml
+func (gl *GL) GetShaderSource(shader glbase.Shader, bufSize int32, length []int32, source []byte) {
+ C.gles2_glGetShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(bufSize), (*C.GLsizei)(unsafe.Pointer(&length[0])), (*C.GLchar)(unsafe.Pointer(&source[0])))
+}
+
+// GetUniformfv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformfv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformfv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformfv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformfv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformfv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformfv(program glbase.Program, location glbase.Uniform, params []float32) {
+ var params_c [4]float32
+ C.gles2_glGetUniformfv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformiv returns in params the value of the specified uniform
+// variable. The type of the uniform variable specified by location
+// determines the number of values returned. If the uniform variable is
+// defined in the shader as a boolean, int, or float, a single value will be
+// returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+// returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+// be returned, and so on. To query values stored in uniform variables
+// declared as arrays, call GetUniformiv for each element of the array. To
+// query values stored in uniform variables declared as structures, call
+// GetUniformiv for each field in the structure. The values for uniform
+// variables declared as a matrix will be returned in column major order.
+//
+// The locations assigned to uniform variables are not known until the
+// program object is linked. After linking has occurred, the command
+// GetUniformLocation can be used to obtain the location of a uniform
+// variable. This location value can then be passed to GetUniformiv in order
+// to query the current value of the uniform variable. After a program object
+// has been linked successfully, the index values for uniform variables
+// remain fixed until the next link command occurs. The uniform variable
+// values can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if program has not been
+// successfully linked. GL.INVALID_OPERATION is generated if location does
+// not correspond to a valid uniform variable location for the specified
+// program object. GL.INVALID_OPERATION is generated if GetUniformiv is
+// executed between the execution of Begin and the corresponding execution of
+// End.
+//
+// GetUniformiv is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformiv(program glbase.Program, location glbase.Uniform, params []int32) {
+ var params_c [4]int32
+ C.gles2_glGetUniformiv(gl.funcs, C.GLuint(program), C.GLint(location), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetUniformLocation returns an integer that represents the location of a
+// specific uniform variable within a program object. name must be an active
+// uniform variable name in program that is not a structure, an array of
+// structures, or a subcomponent of a vector or a matrix. This function
+// returns -1 if name does not correspond to an active uniform variable in
+// program or if name starts with the reserved prefix "gl_".
+//
+// Uniform variables that are structures or arrays of structures may be
+// queried by calling GetUniformLocation for each field within the
+// structure. The array element operator "[]" and the structure field
+// operator "." may be used in name in order to select elements within an
+// array or fields within a structure. The result of using these operators is
+// not allowed to be another structure, an array of structures, or a
+// subcomponent of a vector or a matrix. Except if the last part of name
+// indicates a uniform variable array, the location of the first element of
+// an array can be retrieved by using the name of the array, or by using the
+// name appended by "[0]".
+//
+// The actual locations assigned to uniform variables are not known until the
+// program object is linked successfully. After linking has occurred, the
+// command GetUniformLocation can be used to obtain the location of a
+// uniform variable. This location value can then be passed to Uniform to
+// set the value of the uniform variable or to GetUniform in order to query
+// the current value of the uniform variable. After a program object has been
+// linked successfully, the index values for uniform variables remain fixed
+// until the next link command occurs. Uniform variable locations and values
+// can only be queried after a link if the link was successful.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+// GL.INVALID_OPERATION is generated if program has not been successfully
+// linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// GetUniformLocation is available in GL version 2.0 or greater.
+func (gl *GL) GetUniformLocation(program glbase.Program, name string) glbase.Uniform {
+ name_cstr := C.CString(name)
+ glresult := C.gles2_glGetUniformLocation(gl.funcs, C.GLuint(program), (*C.GLchar)(name_cstr))
+ C.free(unsafe.Pointer(name_cstr))
+ return glbase.Uniform(glresult)
+}
+
+// GetVertexAttribfv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribfv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribfv(index glbase.Attrib, pname glbase.Enum, params []float32) {
+ var params_c [4]float32
+ C.gles2_glGetVertexAttribfv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// GetVertexAttribiv returns in params the value of a generic vertex attribute
+// parameter. The generic vertex attribute to be queried is specified by
+// index, and the parameter to be queried is specified by pname.
+//
+// The accepted parameter names are as follows:
+//
+// GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+// params returns a single value, the name of the buffer object
+// currently bound to the binding point corresponding to generic vertex
+// attribute array index. If no buffer object is bound, 0 is returned.
+// The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_ENABLED
+// params returns a single value that is non-zero (true) if the vertex
+// attribute array for index is enabled and 0 (false) if it is
+// disabled. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_SIZE
+// params returns a single value, the size of the vertex attribute
+// array for index. The size is the number of values for each element
+// of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+// initial value is 4.
+//
+// GL.VERTEX_ATTRIB_ARRAY_STRIDE
+// params returns a single value, the array stride for (number of bytes
+// between successive elements in) the vertex attribute array for
+// index. A value of 0 indicates that the array elements are stored
+// sequentially in memory. The initial value is 0.
+//
+// GL.VERTEX_ATTRIB_ARRAY_TYPE
+// params returns a single value, a symbolic constant indicating the
+// array type for the vertex attribute array for index. Possible values
+// are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+// GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+// GL.FLOAT.
+//
+// GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+// params returns a single value that is non-zero (true) if fixed-point
+// data types for the vertex attribute array indicated by index are
+// normalized when they are converted to floating point, and 0 (false)
+// otherwise. The initial value is 0.
+//
+// GL.CURRENT_VERTEX_ATTRIB
+// params returns four values that represent the current value for the
+// generic vertex attribute specified by index. Generic vertex
+// attribute 0 is unique in that it has no current state, so an error
+// will be generated if index is 0. The initial value for all other
+// generic vertex attributes is (0,0,0,1).
+//
+// All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+// client-side state.
+//
+// Error GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+// accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+// is GL.CURRENT_VERTEX_ATTRIB.
+//
+// GetVertexAttribiv is available in GL version 2.0 or greater.
+func (gl *GL) GetVertexAttribiv(index glbase.Attrib, pname glbase.Enum, params []int32) {
+ var params_c [4]int32
+ C.gles2_glGetVertexAttribiv(gl.funcs, C.GLuint(index), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params_c[0])))
+ copy(params, params_c[:])
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsBuffer.xml
+func (gl *GL) IsBuffer(buffer glbase.Buffer) bool {
+ glresult := C.gles2_glIsBuffer(gl.funcs, C.GLuint(buffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsFramebuffer.xml
+func (gl *GL) IsFramebuffer(framebuffer glbase.Framebuffer) bool {
+ glresult := C.gles2_glIsFramebuffer(gl.funcs, C.GLuint(framebuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsProgram.xml
+func (gl *GL) IsProgram(program glbase.Program) bool {
+ glresult := C.gles2_glIsProgram(gl.funcs, C.GLuint(program))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsRenderbuffer.xml
+func (gl *GL) IsRenderbuffer(renderbuffer glbase.Renderbuffer) bool {
+ glresult := C.gles2_glIsRenderbuffer(gl.funcs, C.GLuint(renderbuffer))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsShader.xml
+func (gl *GL) IsShader(shader glbase.Shader) bool {
+ glresult := C.gles2_glIsShader(gl.funcs, C.GLuint(shader))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// LinkProgram links the program object specified by program. If any shader
+// objects of type GL.VERTEX_SHADER are attached to program, they will be
+// used to create an executable that will run on the programmable vertex
+// processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+// to program, they will be used to create an executable that will run on the
+// programmable fragment processor.
+//
+// The status of the link operation will be stored as part of the program
+// object's state. This value will be set to GL.TRUE if the program object
+// was linked without errors and is ready for use, and GL.FALSE otherwise. It
+// can be queried by calling GetProgramiv with arguments program and
+// GL.LINK_STATUS.
+//
+// As a result of a successful link operation, all active user-defined
+// uniform variables belonging to program will be initialized to 0, and each
+// of the program object's active uniform variables will be assigned a
+// location that can be queried by calling GetUniformLocation. Also, any
+// active user-defined attribute variables that have not been bound to a
+// generic vertex attribute index will be bound to one at this time.
+//
+// Linking of a program object can fail for a number of reasons as specified
+// in the OpenGL Shading Language Specification. The following lists some of
+// the conditions that will cause a link error.
+//
+// - The number of active attribute variables supported by the
+// implementation has been exceeded.
+//
+// - The storage limit for uniform variables has been exceeded.
+//
+// - The number of active uniform variables supported by the implementation
+// has been exceeded.
+//
+// - The main function is missing for the vertex shader or the fragment
+// shader.
+//
+// - A varying variable actually used in the fragment shader is not
+// declared in the same way (or is not declared at all) in the vertex
+// shader.
+//
+// - A reference to a function or variable name is unresolved.
+//
+// - A shared global is declared with two different types or two different
+// initial values.
+//
+// - One or more of the attached shader objects has not been successfully
+// compiled.
+//
+// - Binding a generic attribute matrix caused some rows of the matrix to
+// fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+//
+// - Not enough contiguous vertex attribute slots could be found to bind
+// attribute matrices.
+//
+// When a program object has been successfully linked, the program object can
+// be made part of current state by calling UseProgram. Whether or not the
+// link operation was successful, the program object's information log will
+// be overwritten. The information log can be retrieved by calling
+// GetProgramInfoLog.
+//
+// LinkProgram will also install the generated executables as part of the
+// current rendering state if the link operation was successful and the
+// specified program object is already currently in use as a result of a
+// previous call to UseProgram. If the program object currently in use is
+// relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+// executables and associated state will remain part of the current state
+// until a subsequent call to UseProgram removes it from use. After it is
+// removed from use, it cannot be made part of current state until it has
+// been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but does not
+// contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+// be linked against the implicit interface for fixed functionality fragment
+// processing. Similarly, if program contains shader objects of type
+// GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+// interface for fixed functionality vertex processing.
+//
+// The program object's information log is updated and the program is
+// generated at the time of the link operation. After the link operation,
+// applications are free to modify attached shader objects, compile attached
+// shader objects, detach shader objects, delete shader objects, and attach
+// additional shader objects. None of these operations affects the
+// information log or the program that is part of the program object.
+//
+// If the link operation is unsuccessful, any information about a previous
+// link operation on program is lost (a failed link does not restore the
+// old state of program). Certain information can still be retrieved
+// from program even after an unsuccessful link operation. See for instance
+// GetActiveAttrib and GetActiveUniform.
+//
+// Error GL.INVALID_VALUE is generated if program is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+// object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+// between the execution of Begin and the corresponding execution of End.
+//
+// LinkProgram is available in GL version 2.0 or greater.
+func (gl *GL) LinkProgram(program glbase.Program) {
+ C.gles2_glLinkProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReleaseShaderCompiler.xml
+func (gl *GL) ReleaseShaderCompiler() {
+ C.gles2_glReleaseShaderCompiler(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glRenderbufferStorage.xml
+func (gl *GL) RenderbufferStorage(target, internalFormat glbase.Enum, width, height int) {
+ C.gles2_glRenderbufferStorage(gl.funcs, C.GLenum(target), C.GLenum(internalFormat), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glSampleCoverage.xml
+func (gl *GL) SampleCoverage(value glbase.Clampf, invert bool) {
+ C.gles2_glSampleCoverage(gl.funcs, C.GLclampf(value), *(*C.GLboolean)(unsafe.Pointer(&invert)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glShaderBinary.xml
+func (gl *GL) ShaderBinary(n int, shaders []glbase.Shader, binaryFormat glbase.Enum, binary interface{}, length int32) {
+ var binary_ptr unsafe.Pointer
+ var binary_v = reflect.ValueOf(binary)
+ if binary != nil && binary_v.Kind() != reflect.Slice {
+ panic("parameter binary must be a slice")
+ }
+ if binary != nil {
+ binary_ptr = unsafe.Pointer(binary_v.Index(0).Addr().Pointer())
+ }
+ C.gles2_glShaderBinary(gl.funcs, C.GLint(n), (*C.GLuint)(unsafe.Pointer(&shaders[0])), C.GLenum(binaryFormat), binary_ptr, C.GLint(length))
+}
+
+// ShaderSource sets the source code in shader to the provided source code. Any source
+// code previously stored in the shader object is completely replaced.
+//
+// Error GL.INVALID_VALUE is generated if shader is not a value generated by
+// OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+// object. GL.INVALID_VALUE is generated if count is less than 0.
+// GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+// execution of Begin and the corresponding execution of End.
+//
+// ShaderSource is available in GL version 2.0 or greater.
+func (gl *GL) ShaderSource(shader glbase.Shader, source ...string) {
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ C.gles2_glShaderSource(gl.funcs, C.GLuint(shader), C.GLsizei(count), (**C.GLchar)(unsafe.Pointer(&source_c[0])), (*C.GLint)(unsafe.Pointer(&length[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFuncSeparate.xml
+func (gl *GL) StencilFuncSeparate(face, glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gles2_glStencilFuncSeparate(gl.funcs, C.GLenum(face), C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMaskSeparate.xml
+func (gl *GL) StencilMaskSeparate(face glbase.Enum, mask uint32) {
+ C.gles2_glStencilMaskSeparate(gl.funcs, C.GLenum(face), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOpSeparate.xml
+func (gl *GL) StencilOpSeparate(face, fail, zfail, zpass glbase.Enum) {
+ C.gles2_glStencilOpSeparate(gl.funcs, C.GLenum(face), C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// Uniform1f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1f(location glbase.Uniform, v0 float32) {
+ C.gles2_glUniform1f(gl.funcs, C.GLint(location), C.GLfloat(v0))
+}
+
+// Uniform1fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gles2_glUniform1fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform1i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform1i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1i(location glbase.Uniform, v0 int32) {
+ C.gles2_glUniform1i(gl.funcs, C.GLint(location), C.GLint(v0))
+}
+
+// Uniform1iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform1iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform1iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ count := len(value)
+ C.gles2_glUniform1iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2f(location glbase.Uniform, v0, v1 float32) {
+ C.gles2_glUniform2f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1))
+}
+
+// Uniform2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2fv")
+ }
+ count := len(value) / 2
+ C.gles2_glUniform2fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform2i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform2i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2i(location glbase.Uniform, v0, v1 int32) {
+ C.gles2_glUniform2i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1))
+}
+
+// Uniform2iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform2iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform2iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%2 != 0 {
+ panic("invalid value length for Uniform2iv")
+ }
+ count := len(value) / 2
+ C.gles2_glUniform2iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3f(location glbase.Uniform, v0, v1, v2 float32) {
+ C.gles2_glUniform3f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2))
+}
+
+// Uniform3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3fv")
+ }
+ count := len(value) / 3
+ C.gles2_glUniform3fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform3i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform3i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3i(location glbase.Uniform, v0, v1, v2 int32) {
+ C.gles2_glUniform3i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2))
+}
+
+// Uniform3iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform3iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform3iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%3 != 0 {
+ panic("invalid value length for Uniform3iv")
+ }
+ count := len(value) / 3
+ C.gles2_glUniform3iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4f modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4f operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4f(location glbase.Uniform, v0, v1, v2, v3 float32) {
+ C.gles2_glUniform4f(gl.funcs, C.GLint(location), C.GLfloat(v0), C.GLfloat(v1), C.GLfloat(v2), C.GLfloat(v3))
+}
+
+// Uniform4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4fv(location glbase.Uniform, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4fv")
+ }
+ count := len(value) / 4
+ C.gles2_glUniform4fv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// Uniform4i modifies the value of a single uniform variable.
+// The location of the uniform variable to be modified is specified by
+// location, which should be a value returned by GetUniformLocation.
+// Uniform4i operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+// uniform variable specified by location using the values passed as
+// arguments. The number specified in the function should match the number of
+// components in the data type of the specified uniform variable (1 for
+// float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+// The suffix f indicates that floating-point values are being passed; the
+// suffix i indicates that integer values are being passed; the suffix ui
+// indicates that unsigned integer values are being passed, and this type
+// should also match the data type of the specified uniform variable. The i
+// variants of this function should be used to provide values for uniform
+// variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+// variants of this function should be used to provide values for uniform
+// variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+// these. The f variants should be used to provide values for uniform
+// variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+// i, ui or f variants may be used to provide values for uniform variables of
+// type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+// will be set to false if the input value is 0 or 0.0f, and it will be set
+// to true otherwise.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4i(location glbase.Uniform, v0, v1, v2, v3 int32) {
+ C.gles2_glUniform4i(gl.funcs, C.GLint(location), C.GLint(v0), C.GLint(v1), C.GLint(v2), C.GLint(v3))
+}
+
+// Uniform4iv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// Uniform4iv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+// uniform variable or a uniform variable array. These functions receive a
+// slice with the values to be loaded into a uniform variable or a uniform
+// variable array. A slice with length 1 should be used if modifying the value
+// of a single uniform variable, and a length of 1 or greater can be used to
+// modify an entire array or part of an array. When loading n elements
+// starting at an arbitrary position m in a uniform variable array, elements
+// m + n - 1 in the array will be replaced with the new values. If m + n - 1
+// is larger than the size of the uniform variable array, values for all
+// array elements beyond the end of the array will be ignored. The number
+// specified in the name of the command indicates the number of components
+// for each element in value, and it should match the number of components in
+// the data type of the specified uniform variable (1 for float, int, bool;
+// 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+// of the command must match the data type for the specified uniform variable
+// as described for Uniform{1|2|3|4}{f|i|ui}.
+//
+// Uniform1i and Uniform1iv are the only two functions that may be used to
+// load uniform variables defined as sampler types. Loading samplers with any
+// other function will result in a GL.INVALID_OPERATION error.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) Uniform4iv(location glbase.Uniform, value []int32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%4 != 0 {
+ panic("invalid value length for Uniform4iv")
+ }
+ count := len(value) / 4
+ C.gles2_glUniform4iv(gl.funcs, C.GLint(location), C.GLsizei(count), (*C.GLint)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix2fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix2fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix2fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(2*2) != 0 {
+ panic("invalid value length for UniformMatrix2fv")
+ }
+ count := len(value) / (2 * 2)
+ C.gles2_glUniformMatrix2fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix3fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix3fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix3fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(3*3) != 0 {
+ panic("invalid value length for UniformMatrix3fv")
+ }
+ count := len(value) / (3 * 3)
+ C.gles2_glUniformMatrix3fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UniformMatrix4fv modifies the value of a uniform variable or a uniform
+// variable array. The location of the uniform variable to be modified is
+// specified by location, which should be a value returned by GetUniformLocation.
+// UniformMatrix4fv operates on the program object that was made part of
+// current state by calling UseProgram.
+//
+// The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+// modify a matrix or an array of matrices. The numbers in the function name
+// are interpreted as the dimensionality of the matrix. The number 2
+// indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+// values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+// matrix dimensionality is explicit, with the first number representing the
+// number of columns and the second number representing the number of rows.
+// For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+// values). The length of the provided slice must be a multiple of the number
+// of values per matrix, to update one or more consecutive matrices.
+//
+// If transpose is false, each matrix is assumed to be supplied in column
+// major order. If transpose is true, each matrix is assumed to be supplied
+// in row major order.
+//
+// All active uniform variables defined in a program object are initialized
+// to 0 when the program object is linked successfully. They retain the
+// values assigned to them by a call to Uniform* until the next successful
+// link operation occurs on the program object, when they are once again
+// initialized to 0.
+func (gl *GL) UniformMatrix4fv(location glbase.Uniform, transpose bool, value []float32) {
+ if len(value) == 0 {
+ return
+ }
+ if len(value)%(4*4) != 0 {
+ panic("invalid value length for UniformMatrix4fv")
+ }
+ count := len(value) / (4 * 4)
+ C.gles2_glUniformMatrix4fv(gl.funcs, C.GLint(location), C.GLsizei(count), *(*C.GLboolean)(unsafe.Pointer(&transpose)), (*C.GLfloat)(unsafe.Pointer(&value[0])))
+}
+
+// UseProgram installs the program object specified by program as part of
+// current rendering state. One or more executables are created in a program
+// object by successfully attaching shader objects to it with AttachShader,
+// successfully compiling the shader objects with CompileShader, and
+// successfully linking the program object with LinkProgram.
+//
+// A program object will contain an executable that will run on the vertex
+// processor if it contains one or more shader objects of type
+// GL.VERTEX_SHADER that have been successfully compiled and linked.
+// Similarly, a program object will contain an executable that will run on
+// the fragment processor if it contains one or more shader objects of type
+// GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+//
+// Successfully installing an executable on a programmable processor will
+// cause the corresponding fixed functionality of OpenGL to be disabled.
+// Specifically, if an executable is installed on the vertex processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - The modelview matrix is not applied to vertex coordinates.
+//
+// - The projection matrix is not applied to vertex coordinates.
+//
+// - The texture matrices are not applied to texture coordinates.
+//
+// - Normals are not transformed to eye coordinates.
+//
+// - Normals are not rescaled or normalized.
+//
+// - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+//
+// - Texture coordinates are not generated automatically.
+//
+// - Per-vertex lighting is not performed.
+//
+// - Color material computations are not performed.
+//
+// - Color index lighting is not performed.
+//
+// - This list also applies when setting the current raster position.
+//
+// The executable that is installed on the vertex processor is expected to
+// implement any or all of the desired functionality from the preceding list.
+// Similarly, if an executable is installed on the fragment processor, the
+// OpenGL fixed functionality will be disabled as follows.
+//
+// - Texture environment and texture functions are not applied.
+//
+// - Texture application is not applied.
+//
+// - Color sum is not applied.
+//
+// - Fog is not applied.
+//
+// Again, the fragment shader that is installed is expected to implement any
+// or all of the desired functionality from the preceding list.
+//
+// While a program object is in use, applications are free to modify attached
+// shader objects, compile attached shader objects, attach additional shader
+// objects, and detach or delete shader objects. None of these operations
+// will affect the executables that are part of the current state. However,
+// relinking the program object that is currently in use will install the
+// program object as part of the current rendering state if the link
+// operation was successful (see LinkProgram). If the program object
+// currently in use is relinked unsuccessfully, its link status will be set
+// to GL.FALSE, but the executables and associated state will remain part of
+// the current state until a subsequent call to UseProgram removes it from
+// use. After it is removed from use, it cannot be made part of current state
+// until it has been successfully relinked.
+//
+// If program contains shader objects of type GL.VERTEX_SHADER but it does
+// not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+// be installed on the vertex processor, but fixed functionality will be used
+// for fragment processing. Similarly, if program contains shader objects of
+// type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+// GL.VERTEX_SHADER, an executable will be installed on the fragment
+// processor, but fixed functionality will be used for vertex processing. If
+// program is 0, the programmable processors will be disabled, and fixed
+// functionality will be used for both vertex and fragment processing.
+//
+// While a program object is in use, the state that controls the disabled
+// fixed functionality may also be updated using the normal OpenGL calls.
+//
+// Like display lists and texture objects, the name space for program objects
+// may be shared across a set of contexts, as long as the server sides of the
+// contexts share the same address space. If the name space is shared across
+// contexts, any attached objects and the data associated with those attached
+// objects are shared as well.
+//
+// Applications are responsible for providing the synchronization across API
+// calls when objects are accessed from different execution threads.
+//
+// Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+// generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+// a program object. GL.INVALID_OPERATION is generated if program could not
+// be made part of current state. GL.INVALID_OPERATION is generated if
+// UseProgram is executed between the execution of Begin and the
+// corresponding execution of End.
+//
+// UseProgram is available in GL version 2.0 or greater.
+func (gl *GL) UseProgram(program glbase.Program) {
+ C.gles2_glUseProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glValidateProgram.xml
+func (gl *GL) ValidateProgram(program glbase.Program) {
+ C.gles2_glValidateProgram(gl.funcs, C.GLuint(program))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1f.xml
+func (gl *GL) VertexAttrib1f(index glbase.Attrib, x float32) {
+ C.gles2_glVertexAttrib1f(gl.funcs, C.GLuint(index), C.GLfloat(x))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib1fv.xml
+func (gl *GL) VertexAttrib1fv(index glbase.Attrib, values []float32) {
+ C.gles2_glVertexAttrib1fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2f.xml
+func (gl *GL) VertexAttrib2f(index glbase.Attrib, x, y float32) {
+ C.gles2_glVertexAttrib2f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib2fv.xml
+func (gl *GL) VertexAttrib2fv(index glbase.Attrib, values []float32) {
+ if len(values) != 2 {
+ panic("parameter values has incorrect length")
+ }
+ C.gles2_glVertexAttrib2fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3f.xml
+func (gl *GL) VertexAttrib3f(index glbase.Attrib, x, y, z float32) {
+ C.gles2_glVertexAttrib3f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib3fv.xml
+func (gl *GL) VertexAttrib3fv(index glbase.Attrib, values []float32) {
+ if len(values) != 3 {
+ panic("parameter values has incorrect length")
+ }
+ C.gles2_glVertexAttrib3fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4f.xml
+func (gl *GL) VertexAttrib4f(index glbase.Attrib, x, y, z, w float32) {
+ C.gles2_glVertexAttrib4f(gl.funcs, C.GLuint(index), C.GLfloat(x), C.GLfloat(y), C.GLfloat(z), C.GLfloat(w))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glVertexAttrib4fv.xml
+func (gl *GL) VertexAttrib4fv(index glbase.Attrib, values []float32) {
+ if len(values) != 4 {
+ panic("parameter values has incorrect length")
+ }
+ C.gles2_glVertexAttrib4fv(gl.funcs, C.GLuint(index), (*C.GLfloat)(unsafe.Pointer(&values[0])))
+}
+
+// VertexAttribPointer specifies the location and data format of the array
+// of generic vertex attributes at index to use when rendering. size
+// specifies the number of components per attribute and must be 1, 2, 3, or
+// 4. type specifies the data type of each component, and stride specifies
+// the byte stride from one attribute to the next, allowing vertices and
+// attributes to be packed into a single array or stored in separate arrays.
+// normalized indicates whether the values stored in an integer format are
+// to be mapped to the range [-1,1] (for signed values) or [0,1]
+// (for unsigned values) when they are accessed and converted to floating
+// point; otherwise, values will be converted to floats directly without
+// normalization. offset is a byte offset into the buffer object's data
+// store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+//
+// The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+// generic vertex attribute array client-side state
+// (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+//
+// To enable and disable a generic vertex attribute array, call
+// EnableVertexAttribArray and DisableVertexAttribArray with index. If
+// enabled, the generic vertex attribute array is used when DrawArrays or
+// DrawElements is called. Each generic vertex attribute array is initially
+// disabled.
+//
+// VertexAttribPointer is typically implemented on the client side.
+//
+// Error GL.INVALID_ENUM is generated if type is not an accepted value.
+// GL.INVALID_VALUE is generated if index is greater than or equal to
+// GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+// 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+func (gl *GL) VertexAttribPointer(index glbase.Attrib, size int, gltype glbase.Enum, normalized bool, stride int, offset uintptr) {
+ offset_ptr := unsafe.Pointer(offset)
+ C.gles2_glVertexAttribPointer(gl.funcs, C.GLuint(index), C.GLint(size), C.GLenum(gltype), *(*C.GLboolean)(unsafe.Pointer(&normalized)), C.GLsizei(stride), offset_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBindTexture.xml
+func (gl *GL) BindTexture(target glbase.Enum, texture glbase.Texture) {
+ C.gles2_glBindTexture(gl.funcs, C.GLenum(target), C.GLuint(texture))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glBlendFunc.xml
+func (gl *GL) BlendFunc(sfactor, dfactor glbase.Enum) {
+ C.gles2_glBlendFunc(gl.funcs, C.GLenum(sfactor), C.GLenum(dfactor))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClear.xml
+func (gl *GL) Clear(mask glbase.Bitfield) {
+ C.gles2_glClear(gl.funcs, C.GLbitfield(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearColor.xml
+func (gl *GL) ClearColor(red, green, blue, alpha glbase.Clampf) {
+ C.gles2_glClearColor(gl.funcs, C.GLclampf(red), C.GLclampf(green), C.GLclampf(blue), C.GLclampf(alpha))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glClearStencil.xml
+func (gl *GL) ClearStencil(s int32) {
+ C.gles2_glClearStencil(gl.funcs, C.GLint(s))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml
+func (gl *GL) ColorMask(red, green, blue, alpha bool) {
+ C.gles2_glColorMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&red)), *(*C.GLboolean)(unsafe.Pointer(&green)), *(*C.GLboolean)(unsafe.Pointer(&blue)), *(*C.GLboolean)(unsafe.Pointer(&alpha)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexImage2D.xml
+func (gl *GL) CopyTexImage2D(target glbase.Enum, level int, internalFormat glbase.Enum, x, y, width, height, border int) {
+ C.gles2_glCopyTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLenum(internalFormat), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLint(border))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCopyTexSubImage2D.xml
+func (gl *GL) CopyTexSubImage2D(target glbase.Enum, level, xoffset, yoffset, x, y, width, height int) {
+ C.gles2_glCopyTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glCullFace.xml
+func (gl *GL) CullFace(mode glbase.Enum) {
+ C.gles2_glCullFace(gl.funcs, C.GLenum(mode))
+}
+
+// DeleteTextures deletes the textures objects whose names are stored
+// in the textures slice. After a texture is deleted, it has no contents or
+// dimensionality, and its name is free for reuse (for example by
+// GenTextures). If a texture that is currently bound is deleted, the binding
+// reverts to 0 (the default texture).
+//
+// DeleteTextures silently ignores 0's and names that do not correspond to
+// existing textures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// DeleteTextures is available in GL version 2.0 or greater.
+func (gl *GL) DeleteTextures(textures []glbase.Texture) {
+ n := len(textures)
+ if n == 0 {
+ return
+ }
+ C.gles2_glDeleteTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthFunc.xml
+func (gl *GL) DepthFunc(glfunc glbase.Enum) {
+ C.gles2_glDepthFunc(gl.funcs, C.GLenum(glfunc))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDepthMask.xml
+func (gl *GL) DepthMask(flag bool) {
+ C.gles2_glDepthMask(gl.funcs, *(*C.GLboolean)(unsafe.Pointer(&flag)))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDisable.xml
+func (gl *GL) Disable(cap glbase.Enum) {
+ C.gles2_glDisable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawArrays.xml
+func (gl *GL) DrawArrays(mode glbase.Enum, first, count int) {
+ C.gles2_glDrawArrays(gl.funcs, C.GLenum(mode), C.GLint(first), C.GLsizei(count))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glDrawElements.xml
+func (gl *GL) DrawElements(mode glbase.Enum, count int, gltype glbase.Enum, indices interface{}) {
+ var indices_ptr unsafe.Pointer
+ var indices_v = reflect.ValueOf(indices)
+ if indices != nil && indices_v.Kind() != reflect.Slice {
+ panic("parameter indices must be a slice")
+ }
+ if indices != nil {
+ indices_ptr = unsafe.Pointer(indices_v.Index(0).Addr().Pointer())
+ }
+ C.gles2_glDrawElements(gl.funcs, C.GLenum(mode), C.GLsizei(count), C.GLenum(gltype), indices_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glEnable.xml
+func (gl *GL) Enable(cap glbase.Enum) {
+ C.gles2_glEnable(gl.funcs, C.GLenum(cap))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFinish.xml
+func (gl *GL) Finish() {
+ C.gles2_glFinish(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFlush.xml
+func (gl *GL) Flush() {
+ C.gles2_glFlush(gl.funcs)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glFrontFace.xml
+func (gl *GL) FrontFace(mode glbase.Enum) {
+ C.gles2_glFrontFace(gl.funcs, C.GLenum(mode))
+}
+
+// GenTextures returns n texture names in textures. There is no guarantee
+// that the names form a contiguous set of integers; however, it is
+// guaranteed that none of the returned names was in use immediately before
+// the call to GenTextures.
+//
+// The generated textures have no dimensionality; they assume the
+// dimensionality of the texture target to which they are first bound (see
+// BindTexture).
+//
+// Texture names returned by a call to GenTextures are not returned by
+// subsequent calls, unless they are first deleted with DeleteTextures.
+//
+// Error GL.INVALID_VALUE is generated if n is negative.
+//
+// GenTextures is available in GL version 2.0 or greater.
+func (gl *GL) GenTextures(n int) []glbase.Texture {
+ if n == 0 {
+ return nil
+ }
+ textures := make([]glbase.Texture, n)
+ C.gles2_glGenTextures(gl.funcs, C.GLsizei(n), (*C.GLuint)(unsafe.Pointer(&textures[0])))
+ return textures
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetBooleanv.xml
+func (gl *GL) GetBooleanv(pname glbase.Enum, params []bool) {
+ C.gles2_glGetBooleanv(gl.funcs, C.GLenum(pname), (*C.GLboolean)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetError.xml
+func (gl *GL) GetError() glbase.Enum {
+ glresult := C.gles2_glGetError(gl.funcs)
+ return glbase.Enum(glresult)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetFloatv.xml
+func (gl *GL) GetFloatv(pname glbase.Enum, params []float32) {
+ C.gles2_glGetFloatv(gl.funcs, C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetIntegerv.xml
+func (gl *GL) GetIntegerv(pname glbase.Enum, params []int32) {
+ C.gles2_glGetIntegerv(gl.funcs, C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameterfv.xml
+func (gl *GL) GetTexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gles2_glGetTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glGetTexParameteriv.xml
+func (gl *GL) GetTexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gles2_glGetTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glHint.xml
+func (gl *GL) Hint(target, mode glbase.Enum) {
+ C.gles2_glHint(gl.funcs, C.GLenum(target), C.GLenum(mode))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsEnabled.xml
+func (gl *GL) IsEnabled(cap glbase.Enum) bool {
+ glresult := C.gles2_glIsEnabled(gl.funcs, C.GLenum(cap))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glIsTexture.xml
+func (gl *GL) IsTexture(texture glbase.Texture) bool {
+ glresult := C.gles2_glIsTexture(gl.funcs, C.GLuint(texture))
+ return *(*bool)(unsafe.Pointer(&glresult))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glLineWidth.xml
+func (gl *GL) LineWidth(width float32) {
+ C.gles2_glLineWidth(gl.funcs, C.GLfloat(width))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPixelStorei.xml
+func (gl *GL) PixelStorei(pname glbase.Enum, param int32) {
+ C.gles2_glPixelStorei(gl.funcs, C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glPolygonOffset.xml
+func (gl *GL) PolygonOffset(factor, units float32) {
+ C.gles2_glPolygonOffset(gl.funcs, C.GLfloat(factor), C.GLfloat(units))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glReadPixels.xml
+func (gl *GL) ReadPixels(x, y, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gles2_glReadPixels(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glScissor.xml
+func (gl *GL) Scissor(x, y, width, height int) {
+ C.gles2_glScissor(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilFunc.xml
+func (gl *GL) StencilFunc(glfunc glbase.Enum, ref int32, mask uint32) {
+ C.gles2_glStencilFunc(gl.funcs, C.GLenum(glfunc), C.GLint(ref), C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilMask.xml
+func (gl *GL) StencilMask(mask uint32) {
+ C.gles2_glStencilMask(gl.funcs, C.GLuint(mask))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glStencilOp.xml
+func (gl *GL) StencilOp(fail, zfail, zpass glbase.Enum) {
+ C.gles2_glStencilOp(gl.funcs, C.GLenum(fail), C.GLenum(zfail), C.GLenum(zpass))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexImage2D.xml
+func (gl *GL) TexImage2D(target glbase.Enum, level int, internalFormat int32, width, height, border int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gles2_glTexImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(internalFormat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterf.xml
+func (gl *GL) TexParameterf(target, pname glbase.Enum, param float32) {
+ C.gles2_glTexParameterf(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLfloat(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameterfv.xml
+func (gl *GL) TexParameterfv(target, pname glbase.Enum, params []float32) {
+ C.gles2_glTexParameterfv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLfloat)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteri.xml
+func (gl *GL) TexParameteri(target, pname glbase.Enum, param int32) {
+ C.gles2_glTexParameteri(gl.funcs, C.GLenum(target), C.GLenum(pname), C.GLint(param))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexParameteriv.xml
+func (gl *GL) TexParameteriv(target, pname glbase.Enum, params []int32) {
+ C.gles2_glTexParameteriv(gl.funcs, C.GLenum(target), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glTexSubImage2D.xml
+func (gl *GL) TexSubImage2D(target glbase.Enum, level, xoffset, yoffset, width, height int, format, gltype glbase.Enum, pixels interface{}) {
+ var pixels_ptr unsafe.Pointer
+ var pixels_v = reflect.ValueOf(pixels)
+ if pixels != nil && pixels_v.Kind() != reflect.Slice {
+ panic("parameter pixels must be a slice")
+ }
+ if pixels != nil {
+ pixels_ptr = unsafe.Pointer(pixels_v.Index(0).Addr().Pointer())
+ }
+ C.gles2_glTexSubImage2D(gl.funcs, C.GLenum(target), C.GLint(level), C.GLint(xoffset), C.GLint(yoffset), C.GLsizei(width), C.GLsizei(height), C.GLenum(format), C.GLenum(gltype), pixels_ptr)
+}
+
+// https://www.opengl.org/sdk/docs/man2/xhtml/glViewport.xml
+func (gl *GL) Viewport(x, y, width, height int) {
+ C.gles2_glViewport(gl.funcs, C.GLint(x), C.GLint(y), C.GLsizei(width), C.GLsizei(height))
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/Makefile b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/Makefile
new file mode 100644
index 000000000..f814cceb1
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/Makefile
@@ -0,0 +1,9 @@
+
+gengl: main.go parseqt.go
+ go build
+
+%.go: %.rl
+ ragel -Z -G2 -o $@ $<
+
+run: gengl
+ ./gengl
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/funcs.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/funcs.go
new file mode 100644
index 000000000..994a3e91b
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/funcs.go
@@ -0,0 +1,1764 @@
+package main
+
+type funcTweak struct {
+ // name specifies the name of the Go function to be tweaked.
+ name string
+
+ // copy copies all the definitions for this function tweak from the named
+ // function. Templates are parsed under the new context.
+ copy string
+
+ // params specifies a map of zero or more tweaks for specific parameters.
+ params paramTweaks
+
+ // result defines the function result as presented at the end of the func line.
+ // Simple type changes are handled automatically. More involved multi-value
+ // results will require an appropriate after snippet to handle the return.
+ result string
+
+ // before is a code snippet to be injected before the C function call.
+ // It may use the following template variables and functions:
+ //
+ // . - dot holds the Func being tweaked
+ // {{copyDoc "Func"}} - replaced by the respective function documentation
+ // {{paramGoType . "param"}} - replaced by the respective parameter Go type
+ //
+ before string
+
+ // after is a code snippet to be injected after the C function call.
+ // It may use the same template functions as available for before.
+ after string
+
+ // doc defines the documentation for the function. It may use the same
+ // template functions as available for before and after.
+ doc string
+}
+
+type paramTweak struct {
+ // rename changes the parameter name in the Go function while keeping the C
+ // function call unchanged. The before snippet must define a proper variable
+ // to be used under the original name.
+ rename string
+
+ // replace changes the parameter name in the C function call to a variable
+ // named "<original name>_c", while keeping the Go parameter name unchanged.
+ // The before and after snippets must manipulate the two values as needed.
+ replace bool
+
+ // retype changes the Go parameter type.
+ retype string
+
+ // output flags the parameter as an output parameter, which causes it to be
+ // omitted from the input parameter list and added to the result list.
+ output bool
+
+ // unnamed causes the name of a result parameter to be omitted if possible.
+ unnamed bool
+
+ // single flags the parameter as carrying a single value rather than a slice,
+ // when the parameter is originally defined as a pointer.
+ single bool
+
+ // omit drops the parameter from the Go function. The before snippet must
+ // define a variable with the proper name for the C function call to use.
+ omit bool
+}
+
+type paramTweaks map[string]paramTweak
+
+var paramNameFixes = map[string]string{
+ "binaryformat": "binaryFormat",
+ "bufsize": "bufSize",
+ "indx": "index",
+ "infolog": "infoLog",
+ "internalformat": "internalFormat",
+ "precisiontype": "precisionType",
+ "ptr": "pointer",
+}
+
+var funcTweakList = []funcTweak{{
+ name: "Accum",
+ doc: `
+ executes an operation on the accumulation buffer.
+
+ Parameter op defines the accumulation buffer operation (GL.ACCUM, GL.LOAD,
+ GL.ADD, GL.MULT, or GL.RETURN) and specifies how the value parameter is
+ used.
+
+ The accumulation buffer is an extended-range color buffer. Images are not
+ rendered into it. Rather, images rendered into one of the color buffers
+ are added to the contents of the accumulation buffer after rendering.
+ Effects such as antialiasing (of points, lines, and polygons), motion
+ blur, and depth of field can be created by accumulating images generated
+ with different transformation matrices.
+
+ Each pixel in the accumulation buffer consists of red, green, blue, and
+ alpha values. The number of bits per component in the accumulation buffer
+ depends on the implementation. You can examine this number by calling
+ GetIntegerv four times, with arguments GL.ACCUM_RED_BITS,
+ GL.ACCUM_GREEN_BITS, GL.ACCUM_BLUE_BITS, and GL.ACCUM_ALPHA_BITS.
+ Regardless of the number of bits per component, the range of values stored
+ by each component is (-1, 1). The accumulation buffer pixels are mapped
+ one-to-one with frame buffer pixels.
+
+ All accumulation buffer operations are limited to the area of the current
+ scissor box and applied identically to the red, green, blue, and alpha
+ components of each pixel. If a Accum operation results in a value outside
+ the range (-1, 1), the contents of an accumulation buffer pixel component
+ are undefined.
+
+ The operations are as follows:
+
+ GL.ACCUM
+ Obtains R, G, B, and A values from the buffer currently selected for
+ reading (see ReadBuffer). Each component value is divided by 2 n -
+ 1 , where n is the number of bits allocated to each color component
+ in the currently selected buffer. The result is a floating-point
+ value in the range 0 1 , which is multiplied by value and added to
+ the corresponding pixel component in the accumulation buffer,
+ thereby updating the accumulation buffer.
+
+ GL.LOAD
+ Similar to GL.ACCUM, except that the current value in the
+ accumulation buffer is not used in the calculation of the new value.
+ That is, the R, G, B, and A values from the currently selected
+ buffer are divided by 2 n - 1 , multiplied by value, and then stored
+ in the corresponding accumulation buffer cell, overwriting the
+ current value.
+
+ GL.ADD
+ Adds value to each R, G, B, and A in the accumulation buffer.
+
+ GL.MULT
+ Multiplies each R, G, B, and A in the accumulation buffer by value
+ and returns the scaled component to its corresponding accumulation
+ buffer location.
+
+ GL.RETURN
+ Transfers accumulation buffer values to the color buffer or buffers
+ currently selected for writing. Each R, G, B, and A component is
+ multiplied by value, then multiplied by 2 n - 1 , clamped to the
+ range 0 2 n - 1 , and stored in the corresponding display buffer
+ cell. The only fragment operations that are applied to this transfer
+ are pixel ownership, scissor, dithering, and color writemasks.
+
+ To clear the accumulation buffer, call ClearAccum with R, G, B, and A
+ values to set it to, then call Clear with the accumulation buffer
+ enabled.
+
+ Error GL.INVALID_ENUM is generated if op is not an accepted value.
+ GL.INVALID_OPERATION is generated if there is no accumulation buffer.
+ GL.INVALID_OPERATION is generated if Accum is executed between the
+ execution of Begin and the corresponding execution of End.
+ `,
+}, {
+ name: "AttachShader",
+ doc: `
+ attaches a shader object to a program object.
+
+ In order to create an executable, there must be a way to specify the list
+ of things that will be linked together. Program objects provide this
+ mechanism. Shaders that are to be linked together in a program object must
+ first be attached to that program object. This indicates that shader will
+ be included in link operations that will be performed on program.
+
+ All operations that can be performed on a shader object are valid whether
+ or not the shader object is attached to a program object. It is
+ permissible to attach a shader object to a program object before source
+ code has been loaded into the shader object or before the shader object
+ has been compiled. It is permissible to attach multiple shader objects of
+ the same type because each may contain a portion of the complete shader.
+ It is also permissible to attach a shader object to more than one program
+ object. If a shader object is deleted while it is attached to a program
+ object, it will be flagged for deletion, and deletion will not occur until
+ DetachShader is called to detach it from all program objects to which it
+ is attached.
+
+ Error GL.INVALID_VALUE is generated if either program or shader is not a
+ value generated by OpenGL. GL.INVALID_OPERATION is generated if program
+ is not a program object. GL.INVALID_OPERATION is generated if shader is
+ not a shader object. GL.INVALID_OPERATION is generated if shader is
+ already attached to program. GL.INVALID_OPERATION is generated if
+ AttachShader is executed between the execution of Begin and the
+ corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "BindAttribLocation",
+ params: paramTweaks{
+ "name": {retype: "string"},
+ },
+ doc: `
+ associates a user-defined attribute variable in the program
+ object specified by program with a generic vertex attribute index. The name
+ parameter specifies the name of the vertex shader attribute variable to
+ which index is to be bound. When program is made part of the current state,
+ values provided via the generic vertex attribute index will modify the
+ value of the user-defined attribute variable specified by name.
+
+ If name refers to a matrix attribute variable, index refers to the first
+ column of the matrix. Other matrix columns are then automatically bound to
+ locations index+1 for a matrix of type mat2; index+1 and index+2 for a
+ matrix of type mat3; and index+1, index+2, and index+3 for a matrix of
+ type mat4.
+
+ This command makes it possible for vertex shaders to use descriptive names
+ for attribute variables rather than generic variables that are numbered
+ from 0 to GL.MAX_VERTEX_ATTRIBS-1. The values sent to each generic
+ attribute index are part of current state, just like standard vertex
+ attributes such as color, normal, and vertex position. If a different
+ program object is made current by calling UseProgram, the generic vertex
+ attributes are tracked in such a way that the same values will be observed
+ by attributes in the new program object that are also bound to index.
+
+ Attribute variable name-to-generic attribute index bindings for a program
+ object can be explicitly assigned at any time by calling
+ BindAttribLocation. Attribute bindings do not go into effect until
+ LinkProgram is called. After a program object has been linked
+ successfully, the index values for generic attributes remain fixed (and
+ their values can be queried) until the next link command occurs.
+
+ Applications are not allowed to bind any of the standard OpenGL vertex
+ attributes using this command, as they are bound automatically when
+ needed. Any attribute binding that occurs after the program object has
+ been linked will not take effect until the next time the program object is
+ linked.
+
+ If name was bound previously, that information is lost. Thus you cannot
+ bind one user-defined attribute variable to multiple indices, but you can
+ bind multiple user-defined attribute variables to the same index.
+
+ Applications are allowed to bind more than one user-defined attribute
+ variable to the same generic vertex attribute index. This is called
+ aliasing, and it is allowed only if just one of the aliased attributes is
+ active in the executable program, or if no path through the shader
+ consumes more than one attribute of a set of attributes aliased to the
+ same location. The compiler and linker are allowed to assume that no
+ aliasing is done and are free to employ optimizations that work only in
+ the absence of aliasing. OpenGL implementations are not required to do
+ error checking to detect aliasing. Because there is no way to bind
+ standard attributes, it is not possible to alias generic attributes with
+ conventional ones (except for generic attribute 0).
+
+ BindAttribLocation can be called before any vertex shader objects are
+ bound to the specified program object. It is also permissible to bind a
+ generic attribute index to an attribute variable name that is never used
+ in a vertex shader.
+
+ Active attributes that are not explicitly bound will be bound by the
+ linker when LinkProgram is called. The locations assigned can be queried
+ by calling GetAttribLocation.
+
+ Error GL.INVALID_VALUE is generated if index is greater than or equal to
+ GL.MAX_VERTEX_ATTRIBS.
+ GL.INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".
+ GL.INVALID_VALUE is generated if program is not a value generated by OpenGL.
+ GL.INVALID_OPERATION is generated if program is not a program object.
+ GL.INVALID_OPERATION is generated if BindAttribLocation is executed
+ between the execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "BindBuffer",
+ doc: `
+ creates or puts in use a named buffer object.
+ Calling BindBuffer with target set to GL.ARRAY_BUFFER,
+ GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER or GL.PIXEL_UNPACK_BUFFER
+ and buffer set to the name of the new buffer object binds the buffer
+ object name to the target. When a buffer object is bound to a target, the
+ previous binding for that target is automatically broken.
+
+ Buffer object names are unsigned integers. The value zero is reserved, but
+ there is no default buffer object for each buffer object target. Instead,
+ buffer set to zero effectively unbinds any buffer object previously bound,
+ and restores client memory usage for that buffer object target. Buffer
+ object names and the corresponding buffer object contents are local to the
+ shared display-list space (see XCreateContext) of the current GL rendering
+ context; two rendering contexts share buffer object names only if they
+ also share display lists.
+
+ GenBuffers may be called to generate a set of new buffer object names.
+
+ The state of a buffer object immediately after it is first bound is an
+ unmapped zero-sized memory buffer with GL.READ_WRITE access and
+ GL.STATIC_DRAW usage.
+
+ While a non-zero buffer object name is bound, GL operations on the target
+ to which it is bound affect the bound buffer object, and queries of the
+ target to which it is bound return state from the bound buffer object.
+ While buffer object name zero is bound, as in the initial state, attempts
+ to modify or query state on the target to which it is bound generates an
+ GL.INVALID_OPERATION error.
+
+ When vertex array pointer state is changed, for example by a call to
+ NormalPointer, the current buffer object binding (GL.ARRAY_BUFFER_BINDING)
+ is copied into the corresponding client state for the vertex array type
+ being changed, for example GL.NORMAL_ARRAY_BUFFER_BINDING. While a
+ non-zero buffer object is bound to the GL.ARRAY_BUFFER target, the vertex
+ array pointer parameter that is traditionally interpreted as a pointer to
+ client-side memory is instead interpreted as an offset within the buffer
+ object measured in basic machine units.
+
+ While a non-zero buffer object is bound to the GL.ELEMENT_ARRAY_BUFFER
+ target, the indices parameter of DrawElements, DrawRangeElements, or
+ MultiDrawElements that is traditionally interpreted as a pointer to
+ client-side memory is instead interpreted as an offset within the buffer
+ object measured in basic machine units.
+
+ While a non-zero buffer object is bound to the GL.PIXEL_PACK_BUFFER
+ target, the following commands are affected: GetCompressedTexImage,
+ GetConvolutionFilter, GetHistogram, GetMinmax, GetPixelMap,
+ GetPolygonStipple, GetSeparableFilter, GetTexImage, and ReadPixels. The
+ pointer parameter that is traditionally interpreted as a pointer to
+ client-side memory where the pixels are to be packed is instead
+ interpreted as an offset within the buffer object measured in basic
+ machine units.
+
+ While a non-zero buffer object is bound to the GL.PIXEL_UNPACK_BUFFER
+ target, the following commands are affected: Bitmap, ColorSubTable,
+ ColorTable, CompressedTexImage1D, CompressedTexImage2D,
+ CompressedTexImage3D, CompressedTexSubImage1D, CompressedTexSubImage2D,
+ CompressedTexSubImage3D, ConvolutionFilter1D, ConvolutionFilter2D,
+ DrawPixels, PixelMap, PolygonStipple, SeparableFilter2D, TexImage1D,
+ TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, and TexSubImage3D.
+ The pointer parameter that is traditionally interpreted as a pointer to
+ client-side memory from which the pixels are to be unpacked is instead
+ interpreted as an offset within the buffer object measured in basic
+ machine units.
+
+ A buffer object binding created with BindBuffer remains active until a
+ different buffer object name is bound to the same target, or until the
+ bound buffer object is deleted with DeleteBuffers.
+
+ Once created, a named buffer object may be re-bound to any target as often
+ as needed. However, the GL implementation may make choices about how to
+ optimize the storage of a buffer object based on its initial binding
+ target.
+
+ Error GL.INVALID_ENUM is generated if target is not one of the allowable
+ values. GL.INVALID_OPERATION is generated if BindBuffer is executed
+ between the execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "1.5+"}}
+ `,
+}, {
+ name: "BufferData",
+ before: `
+ if data != nil {
+ size = int(data_v.Type().Size()) * data_v.Len()
+ }
+ `,
+ doc: `
+ creates a new data store for the buffer object currently
+ bound to target. Any pre-existing data store is deleted. The new data
+ store is created with the specified size in bytes and usage. If data is
+ not nil, it must be a slice that is used to initialize the data store.
+ In that case the size parameter is ignored and the store size will match
+ the slice data size.
+
+ In its initial state, the new data store is not mapped, it has a NULL
+ mapped pointer, and its mapped access is GL.READ_WRITE.
+
+ The target constant must be one of GL.ARRAY_BUFFER, GL.COPY_READ_BUFFER,
+ GL.COPY_WRITE_BUFFER, GL.ELEMENT_ARRAY_BUFFER, GL.PIXEL_PACK_BUFFER,
+ GL.PIXEL_UNPACK_BUFFER, GL.TEXTURE_BUFFER, GL.TRANSFORM_FEEDBACK_BUFFER,
+ or GL.UNIFORM_BUFFER.
+
+ The usage parameter is a hint to the GL implementation as to how a buffer
+ object's data store will be accessed. This enables the GL implementation
+ to make more intelligent decisions that may significantly impact buffer
+ object performance. It does not, however, constrain the actual usage of
+ the data store. usage can be broken down into two parts: first, the
+ frequency of access (modification and usage), and second, the nature of
+ that access.
+
+ A usage frequency of STREAM and nature of DRAW is specified via the
+ constant GL.STREAM_DRAW, for example.
+
+ The usage frequency of access may be one of:
+
+ STREAM
+ The data store contents will be modified once and used at most a few times.
+
+ STATIC
+ The data store contents will be modified once and used many times.
+
+ DYNAMIC
+ The data store contents will be modified repeatedly and used many times.
+
+ The usage nature of access may be one of:
+
+ DRAW
+ The data store contents are modified by the application, and used as
+ the source for GL drawing and image specification commands.
+
+ READ
+ The data store contents are modified by reading data from the GL,
+ and used to return that data when queried by the application.
+
+ COPY
+ The data store contents are modified by reading data from the GL,
+ and used as the source for GL drawing and image specification
+ commands.
+
+ Clients must align data elements consistent with the requirements of the
+ client platform, with an additional base-level requirement that an offset
+ within a buffer to a datum comprising N bytes be a multiple of N.
+
+ Error GL.INVALID_ENUM is generated if target is not one of the accepted
+ buffer targets. GL.INVALID_ENUM is generated if usage is not
+ GL.STREAM_DRAW, GL.STREAM_READ, GL.STREAM_COPY, GL.STATIC_DRAW,
+ GL.STATIC_READ, GL.STATIC_COPY, GL.DYNAMIC_DRAW, GL.DYNAMIC_READ, or
+ GL.DYNAMIC_COPY. GL.INVALID_VALUE is generated if size is negative.
+ GL.INVALID_OPERATION is generated if the reserved buffer object name 0 is
+ bound to target. GL.OUT_OF_MEMORY is generated if the GL is unable to
+ create a data store with the specified size.
+ `,
+}, {
+ name: "CompileShader",
+ doc: `
+ compiles the source code strings that have been stored in
+ the shader object specified by shader.
+
+ The compilation status will be stored as part of the shader object's
+ state. This value will be set to GL.TRUE if the shader was compiled without
+ errors and is ready for use, and GL.FALSE otherwise. It can be queried by
+ calling GetShaderiv with arguments shader and GL.COMPILE_STATUS.
+
+ Compilation of a shader can fail for a number of reasons as specified by
+ the OpenGL Shading Language Specification. Whether or not the compilation
+ was successful, information about the compilation can be obtained from the
+ shader object's information log by calling GetShaderInfoLog.
+
+ Error GL.INVALID_VALUE is generated if shader is not a value generated by
+ OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+ object. GL.INVALID_OPERATION is generated if CompileShader is executed
+ between the execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "CreateProgram",
+ result: "glbase.Program",
+ doc: `
+ creates an empty program object and returns a non-zero
+ value by which it can be referenced. A program object is an object to
+ which shader objects can be attached. This provides a mechanism to specify
+ the shader objects that will be linked to create a program. It also
+ provides a means for checking the compatibility of the shaders that will
+ be used to create a program (for instance, checking the compatibility
+ between a vertex shader and a fragment shader). When no longer needed as
+ part of a program object, shader objects can be detached.
+
+ One or more executables are created in a program object by successfully
+ attaching shader objects to it with AttachShader, successfully compiling
+ the shader objects with CompileShader, and successfully linking the
+ program object with LinkProgram. These executables are made part of
+ current state when UseProgram is called. Program objects can be deleted
+ by calling DeleteProgram. The memory associated with the program object
+ will be deleted when it is no longer part of current rendering state for
+ any context.
+
+ Like display lists and texture objects, the name space for program objects
+ may be shared across a set of contexts, as long as the server sides of the
+ contexts share the same address space. If the name space is shared across
+ contexts, any attached objects and the data associated with those attached
+ objects are shared as well.
+
+ Applications are responsible for providing the synchronization across API
+ calls when objects are accessed from different execution threads.
+
+ This function returns 0 if an error occurs creating the program object.
+
+ Error GL.INVALID_OPERATION is generated if CreateProgram is executed
+ between the execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "CreateShader",
+ result: "glbase.Shader",
+ doc: `
+ creates an empty shader object and returns a non-zero value
+ by which it can be referenced. A shader object is used to maintain the
+ source code strings that define a shader. shaderType indicates the type of
+ shader to be created.
+
+ Two types of shaders are supported. A shader of type GL.VERTEX_SHADER is a
+ shader that is intended to run on the programmable vertex processor and
+ replace the fixed functionality vertex processing in OpenGL. A shader of
+ type GL.FRAGMENT_SHADER is a shader that is intended to run on the
+ programmable fragment processor and replace the fixed functionality
+ fragment processing in OpenGL.
+
+ When created, a shader object's GL.SHADER_TYPE parameter is set to either
+ GL.VERTEX_SHADER or GL.FRAGMENT_SHADER, depending on the value of
+ shaderType.
+
+ Like display lists and texture objects, the name space for shader objects
+ may be shared across a set of contexts, as long as the server sides of the
+ contexts share the same address space. If the name space is shared across
+ contexts, any attached objects and the data associated with those attached
+ objects are shared as well.
+
+ This function returns 0 if an error occurs creating the shader object.
+
+ Error GL.INVALID_ENUM is generated if shaderType is not an accepted value.
+ GL.INVALID_OPERATION is generated if CreateShader is executed between the
+ execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "DeleteBuffers",
+ params: paramTweaks{
+ "n": {omit: true},
+ },
+ before: `
+ n := len(buffers)
+ if n == 0 { return }
+ `,
+ doc: `
+ deletes the buffer objects whose names are stored in the
+ buffers slice.
+
+ After a buffer object is deleted, it has no contents, and its name is free
+ for reuse (for example by GenBuffers). If a buffer object that is
+ currently bound is deleted, the binding reverts to 0 (the absence of any
+ buffer object, which reverts to client memory usage).
+
+ DeleteBuffers silently ignores 0's and names that do not correspond to
+ existing buffer objects.
+
+ Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+ is generated if DeleteBuffers is executed between the execution of Begin
+ and the corresponding execution of End.
+
+ {{funcSince . "1.5+"}}
+ `,
+}, {
+ name: "DeleteFramebuffers",
+ params: paramTweaks{
+ "n": {omit: true},
+ },
+ before: `
+ n := len(framebuffers)
+ if n == 0 { return }
+ `,
+ doc: `
+ deletes the framebuffer objects whose names are
+ stored in the framebuffers slice. The name zero is reserved by the GL and
+ is silently ignored, should it occur in framebuffers, as are other unused
+ names. Once a framebuffer object is deleted, its name is again unused and
+ it has no attachments. If a framebuffer that is currently bound to one or
+ more of the targets GL.DRAW_FRAMEBUFFER or GL.READ_FRAMEBUFFER is deleted,
+ it is as though BindFramebuffer had been executed with the corresponding
+ target and framebuffer zero.
+
+ Error GL.INVALID_VALUE is generated if n is negative.
+
+ {{funcSince . "3.0+"}}
+ `,
+}, {
+ name: "DeleteProgram",
+ doc: `
+ frees the memory and invalidates the name associated with
+ the program object specified by program. This command effectively undoes
+ the effects of a call to CreateProgram.
+
+ If a program object is in use as part of current rendering state, it will
+ be flagged for deletion, but it will not be deleted until it is no longer
+ part of current state for any rendering context. If a program object to be
+ deleted has shader objects attached to it, those shader objects will be
+ automatically detached but not deleted unless they have already been
+ flagged for deletion by a previous call to DeleteShader. A value of 0
+ for program will be silently ignored.
+
+ To determine whether a program object has been flagged for deletion, call
+ GetProgram with arguments program and GL.DELETE_STATUS.
+
+ Error GL.INVALID_VALUE is generated if program is not a value generated by
+ OpenGL.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "DeleteRenderbuffers",
+ params: paramTweaks{
+ "n": {omit: true},
+ },
+ before: `
+ n := len(renderbuffers)
+ if n == 0 { return }
+ `,
+ doc: `
+ deletes the renderbuffer objects whose names are stored
+ in the renderbuffers slice. The name zero is reserved by the GL and
+ is silently ignored, should it occur in renderbuffers, as are other unused
+ names. Once a renderbuffer object is deleted, its name is again unused and
+ it has no contents. If a renderbuffer that is currently bound to the
+ target GL.RENDERBUFFER is deleted, it is as though BindRenderbuffer had
+ been executed with a target of GL.RENDERBUFFER and a name of zero.
+
+ If a renderbuffer object is attached to one or more attachment points in
+ the currently bound framebuffer, then it as if FramebufferRenderbuffer
+ had been called, with a renderbuffer of zero for each attachment point to
+ which this image was attached in the currently bound framebuffer. In other
+ words, this renderbuffer object is first detached from all attachment
+ ponits in the currently bound framebuffer. Note that the renderbuffer
+ image is specifically not detached from any non-bound framebuffers.
+
+ Error GL.INVALID_VALUE is generated if n is negative.
+
+ {{funcSince . "3.0+"}}
+ `,
+}, {
+ name: "DeleteShader",
+ doc: `
+ frees the memory and invalidates the name associated with
+ the shader object specified by shader. This command effectively undoes the
+ effects of a call to CreateShader.
+
+ If a shader object to be deleted is attached to a program object, it will
+ be flagged for deletion, but it will not be deleted until it is no longer
+ attached to any program object, for any rendering context (it must
+ be detached from wherever it was attached before it will be deleted). A
+ value of 0 for shader will be silently ignored.
+
+ To determine whether an object has been flagged for deletion, call
+ GetShader with arguments shader and GL.DELETE_STATUS.
+
+ Error GL.INVALID_VALUE is generated if shader is not a value generated by
+ OpenGL.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "DeleteTextures",
+ params: paramTweaks{
+ "n": {omit: true},
+ },
+ before: `
+ n := len(textures)
+ if n == 0 { return }
+ `,
+ doc: `
+ deletes the textures objects whose names are stored
+ in the textures slice. After a texture is deleted, it has no contents or
+ dimensionality, and its name is free for reuse (for example by
+ GenTextures). If a texture that is currently bound is deleted, the binding
+ reverts to 0 (the default texture).
+
+ DeleteTextures silently ignores 0's and names that do not correspond to
+ existing textures.
+
+ Error GL.INVALID_VALUE is generated if n is negative.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "DepthRange",
+ doc: `
+ specifies the mapping of depth values from normalized device
+ coordinates to window coordinates.
+
+ Parameter nearVal specifies the mapping of the near clipping plane to window
+ coordinates (defaults to 0), while farVal specifies the mapping of the far
+ clipping plane to window coordinates (defaults to 1).
+
+ After clipping and division by w, depth coordinates range from -1 to 1,
+ corresponding to the near and far clipping planes. DepthRange specifies a
+ linear mapping of the normalized depth coordinates in this range to window
+ depth coordinates. Regardless of the actual depth buffer implementation,
+ window coordinate depth values are treated as though they range from 0 through 1
+ (like color components). Thus, the values accepted by DepthRange are both
+ clamped to this range before they are accepted.
+
+ The default setting of (0, 1) maps the near plane to 0 and the far plane to 1.
+ With this mapping, the depth buffer range is fully utilized.
+
+ It is not necessary that nearVal be less than farVal. Reverse mappings such as
+ nearVal 1, and farVal 0 are acceptable.
+
+ GL.INVALID_OPERATION is generated if DepthRange is executed between the
+ execution of Begin and the corresponding execution of End.
+ `,
+}, {
+ name: "GenBuffers",
+ params: paramTweaks{
+ "buffers": {output: true, unnamed: true},
+ },
+ before: `
+ if n == 0 { return nil }
+ buffers := make([]glbase.Buffer, n)
+ `,
+ doc: `
+ returns n buffer object names. There is no guarantee that
+ the names form a contiguous set of integers; however, it is guaranteed
+ that none of the returned names was in use immediately before the call to
+ GenBuffers.
+
+ Buffer object names returned by a call to GenBuffers are not returned by
+ subsequent calls, unless they are first deleted with DeleteBuffers.
+
+ No buffer objects are associated with the returned buffer object names
+ until they are first bound by calling BindBuffer.
+
+ Error GL.INVALID_VALUE is generated if n is negative. GL.INVALID_OPERATION
+ is generated if GenBuffers is executed between the execution of Begin
+ and the corresponding execution of End.
+
+ {{funcSince . "1.5+"}}
+ `,
+}, {
+ name: "GenFramebuffers",
+ params: paramTweaks{
+ "framebuffers": {output: true, unnamed: true},
+ },
+ before: `
+ if n == 0 { return nil }
+ framebuffers := make([]glbase.Framebuffer, n)
+ `,
+ doc: `
+ returns n framebuffer object names in ids. There is no
+ guarantee that the names form a contiguous set of integers; however, it is
+ guaranteed that none of the returned names was in use immediately before
+ the call to GenFramebuffers.
+
+ Framebuffer object names returned by a call to GenFramebuffers are not
+ returned by subsequent calls, unless they are first deleted with
+ DeleteFramebuffers.
+
+ The names returned in ids are marked as used, for the purposes of
+ GenFramebuffers only, but they acquire state and type only when they are
+ first bound.
+
+ Error GL.INVALID_VALUE is generated if n is negative.
+ `,
+}, {
+ name: "GenRenderbuffers",
+ params: paramTweaks{
+ "renderbuffers": {output: true, unnamed: true},
+ },
+ before: `
+ if n == 0 { return nil }
+ renderbuffers := make([]glbase.Renderbuffer, n)
+ `,
+ doc: `
+ returns n renderbuffer object names in renderbuffers.
+ There is no guarantee that the names form a contiguous set of integers;
+ however, it is guaranteed that none of the returned names was in use
+ immediately before the call to GenRenderbuffers.
+
+ Renderbuffer object names returned by a call to GenRenderbuffers are not
+ returned by subsequent calls, unless they are first deleted with
+ DeleteRenderbuffers.
+
+ The names returned in renderbuffers are marked as used, for the purposes
+ of GenRenderbuffers only, but they acquire state and type only when they
+ are first bound.
+
+ Error GL.INVALID_VALUE is generated if n is negative.
+
+ {{funcSince . "3.0+"}}
+ `,
+}, {
+ name: "GenTextures",
+ params: paramTweaks{
+ "textures": {output: true, unnamed: true},
+ },
+ before: `
+ if n == 0 { return nil }
+ textures := make([]glbase.Texture, n)
+ `,
+ doc: `
+ returns n texture names in textures. There is no guarantee
+ that the names form a contiguous set of integers; however, it is
+ guaranteed that none of the returned names was in use immediately before
+ the call to GenTextures.
+
+ The generated textures have no dimensionality; they assume the
+ dimensionality of the texture target to which they are first bound (see
+ BindTexture).
+
+ Texture names returned by a call to GenTextures are not returned by
+ subsequent calls, unless they are first deleted with DeleteTextures.
+
+ Error GL.INVALID_VALUE is generated if n is negative.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "GetAttribLocation",
+ params: paramTweaks{
+ "name": {retype: "string"},
+ },
+ result: "glbase.Attrib",
+ doc: `
+ queries the previously linked program object specified
+ by program for the attribute variable specified by name and returns the
+ index of the generic vertex attribute that is bound to that attribute
+ variable. If name is a matrix attribute variable, the index of the first
+ column of the matrix is returned. If the named attribute variable is not
+ an active attribute in the specified program object or if name starts with
+ the reserved prefix "gl_", a value of -1 is returned.
+
+ The association between an attribute variable name and a generic attribute
+ index can be specified at any time by calling BindAttribLocation.
+ Attribute bindings do not go into effect until LinkProgram is called.
+ After a program object has been linked successfully, the index values for
+ attribute variables remain fixed until the next link command occurs. The
+ attribute values can only be queried after a link if the link was
+ successful. GetAttribLocation returns the binding that actually went
+ into effect the last time LinkProgram was called for the specified
+ program object. Attribute bindings that have been specified since the last
+ link operation are not returned by GetAttribLocation.
+
+ Error GL_INVALID_OPERATION is generated if program is not a value
+ generated by OpenGL. GL_INVALID_OPERATION is generated if program is not
+ a program object. GL_INVALID_OPERATION is generated if program has not
+ been successfully linked. GL_INVALID_OPERATION is generated if
+ GetAttribLocation is executed between the execution of Begin and the
+ corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "GetProgramInfoLog",
+ params: paramTweaks{
+ "bufSize": {omit: true},
+ "length": {omit: true, single: true},
+ "infoLog": {output: true, unnamed: true},
+ },
+ before: `
+ var params [1]int32
+ var length int32
+ gl.GetProgramiv(program, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ `,
+ doc: `
+ returns the information log for the specified program
+ object. The information log for a program object is modified when the
+ program object is linked or validated.
+
+ The information log for a program object is either an empty string, or a
+ string containing information about the last link operation, or a string
+ containing information about the last validation operation. It may contain
+ diagnostic messages, warning messages, and other information. When a
+ program object is created, its information log will be a string of length
+ 0, and the size of the current log can be obtained by calling GetProgramiv
+ with the value GL.INFO_LOG_LENGTH.
+
+ Error GL.INVALID_VALUE is generated if program is not a value generated
+ by OpenGL. GL.INVALID_OPERATION is generated if program is not a
+ program object.
+ `,
+}, {
+ name: "GetProgramiv",
+ params: paramTweaks{
+ "params": {replace: true},
+ },
+ before: `
+ var params_c [4]{{paramGoType . "params"}}
+ `,
+ after: `
+ copy(params, params_c[:])
+ `,
+ doc: `
+ returns in params the value of a parameter for a specific
+ program object. The following parameters are defined:
+
+ GL.DELETE_STATUS
+ params returns GL.TRUE if program is currently flagged for deletion,
+ and GL.FALSE otherwise.
+
+ GL.LINK_STATUS
+ params returns GL.TRUE if the last link operation on program was
+ successful, and GL.FALSE otherwise.
+
+ GL.VALIDATE_STATUS
+ params returns GL.TRUE or if the last validation operation on
+ program was successful, and GL.FALSE otherwise.
+
+ GL.INFO_LOG_LENGTH
+ params returns the number of characters in the information log for
+ program including the null termination character (the size of
+ the character buffer required to store the information log). If
+ program has no information log, a value of 0 is returned.
+
+ GL.ATTACHED_SHADERS
+ params returns the number of shader objects attached to program.
+
+ GL.ACTIVE_ATTRIBUTES
+ params returns the number of active attribute variables for program.
+
+ GL.ACTIVE_ATTRIBUTE_MAX_LENGTH
+ params returns the length of the longest active attribute name for
+ program, including the null termination character (the size of
+ the character buffer required to store the longest attribute name).
+ If no active attributes exist, 0 is returned.
+
+ GL.ACTIVE_UNIFORMS
+ params returns the number of active uniform variables for program.
+
+ GL.ACTIVE_UNIFORM_MAX_LENGTH
+ params returns the length of the longest active uniform variable
+ name for program, including the null termination character (i.e.,
+ the size of the character buffer required to store the longest
+ uniform variable name). If no active uniform variables exist, 0 is
+ returned.
+
+ GL.TRANSFORM_FEEDBACK_BUFFER_MODE
+ params returns a symbolic constant indicating the buffer mode used
+ when transform feedback is active. This may be GL.SEPARATE_ATTRIBS
+ or GL.INTERLEAVED_ATTRIBS.
+
+ GL.TRANSFORM_FEEDBACK_VARYINGS
+ params returns the number of varying variables to capture in transform
+ feedback mode for the program.
+
+ GL.TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH
+ params returns the length of the longest variable name to be used for
+ transform feedback, including the null-terminator.
+
+ GL.GEOMETRY_VERTICES_OUT
+ params returns the maximum number of vertices that the geometry shader in
+ program will output.
+
+ GL.GEOMETRY_INPUT_TYPE
+ params returns a symbolic constant indicating the primitive type accepted
+ as input to the geometry shader contained in program.
+
+ GL.GEOMETRY_OUTPUT_TYPE
+ params returns a symbolic constant indicating the primitive type that will
+ be output by the geometry shader contained in program.
+
+ GL.ACTIVE_UNIFORM_BLOCKS and GL.ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH are
+ available only if the GL version 3.1 or greater.
+
+ GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE and
+ GL.GEOMETRY_OUTPUT_TYPE are accepted only if the GL version is 3.2 or
+ greater.
+
+ Error GL.INVALID_VALUE is generated if program is not a value generated by
+ OpenGL. GL.INVALID_OPERATION is generated if program does not refer to a
+ program object. GL.INVALID_OPERATION is generated if pname is
+ GL.GEOMETRY_VERTICES_OUT, GL.GEOMETRY_INPUT_TYPE, or
+ GL.GEOMETRY_OUTPUT_TYPE, and program does not contain a geometry shader.
+ GL.INVALID_ENUM is generated if pname is not an accepted value.
+ `,
+}, {
+ name: "GetShaderiv",
+ params: paramTweaks{
+ "params": {replace: true},
+ },
+ before: `
+ var params_c [4]{{paramGoType . "params"}}
+ `,
+ after: `
+ copy(params, params_c[:])
+ `,
+ doc: `
+ GetShader returns in params the value of a parameter for a specific
+ shader object. The following parameters are defined:
+
+ GL.SHADER_TYPE
+ params returns GL.VERTEX_SHADER if shader is a vertex shader object,
+ and GL.FRAGMENT_SHADER if shader is a fragment shader object.
+
+ GL.DELETE_STATUS
+ params returns GL.TRUE if shader is currently flagged for deletion,
+ and GL.FALSE otherwise.
+
+ GL.COMPILE_STATUS
+ params returns GL.TRUE if the last compile operation on shader was
+ successful, and GL.FALSE otherwise.
+
+ GL.INFO_LOG_LENGTH
+ params returns the number of characters in the information log for
+ shader including the null termination character (the size of the
+ character buffer required to store the information log). If shader has
+ no information log, a value of 0 is returned.
+
+ GL.SHADER_SOURCE_LENGTH
+ params returns the length of the concatenation of the source strings
+ that make up the shader source for the shader, including the null
+ termination character. (the size of the character buffer
+ required to store the shader source). If no source code exists, 0 is
+ returned.
+
+ Error GL.INVALID_VALUE is generated if shader is not a value generated by
+ OpenGL. GL.INVALID_OPERATION is generated if shader does not refer to a
+ shader object. GL.INVALID_ENUM is generated if pname is not an accepted
+ value. GL.INVALID_OPERATION is generated if GetShader is executed
+ between the execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "GetShaderInfoLog",
+ params: paramTweaks{
+ "bufSize": {omit: true},
+ "length": {omit: true, single: true},
+ "infoLog": {output: true, unnamed: true},
+ },
+ before: `
+ var params [1]int32
+ var length int32
+ gl.GetShaderiv(shader, INFO_LOG_LENGTH, params[:])
+ bufSize := params[0]
+ infoLog := make([]byte, int(bufSize))
+ `,
+ doc: `
+ returns the information log for the specified shader
+ object. The information log for a shader object is modified when the
+ shader is compiled.
+
+ The information log for a shader object is a string that may contain
+ diagnostic messages, warning messages, and other information about the
+ last compile operation. When a shader object is created, its information
+ log will be a string of length 0, and the size of the current log can be
+ obtained by calling GetShaderiv with the value GL.INFO_LOG_LENGTH.
+
+ The information log for a shader object is the OpenGL implementer's
+ primary mechanism for conveying information about the compilation process.
+ Therefore, the information log can be helpful to application developers
+ during the development process, even when compilation is successful.
+ Application developers should not expect different OpenGL implementations
+ to produce identical information logs.
+
+ Error GL.INVALID_VALUE is generated if shader is not a value generated by
+ OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+ object. GL.INVALID_VALUE is generated if maxLength is less than 0.
+ GL.INVALID_OPERATION is generated if GetShaderInfoLog is executed
+ between the execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "GetUniformLocation",
+ params: paramTweaks{
+ "name": {retype: "string"},
+ },
+ result: "glbase.Uniform",
+ doc: `
+ returns an integer that represents the location of a
+ specific uniform variable within a program object. name must be an active
+ uniform variable name in program that is not a structure, an array of
+ structures, or a subcomponent of a vector or a matrix. This function
+ returns -1 if name does not correspond to an active uniform variable in
+ program or if name starts with the reserved prefix "gl_".
+
+ Uniform variables that are structures or arrays of structures may be
+ queried by calling GetUniformLocation for each field within the
+ structure. The array element operator "[]" and the structure field
+ operator "." may be used in name in order to select elements within an
+ array or fields within a structure. The result of using these operators is
+ not allowed to be another structure, an array of structures, or a
+ subcomponent of a vector or a matrix. Except if the last part of name
+ indicates a uniform variable array, the location of the first element of
+ an array can be retrieved by using the name of the array, or by using the
+ name appended by "[0]".
+
+ The actual locations assigned to uniform variables are not known until the
+ program object is linked successfully. After linking has occurred, the
+ command GetUniformLocation can be used to obtain the location of a
+ uniform variable. This location value can then be passed to Uniform to
+ set the value of the uniform variable or to GetUniform in order to query
+ the current value of the uniform variable. After a program object has been
+ linked successfully, the index values for uniform variables remain fixed
+ until the next link command occurs. Uniform variable locations and values
+ can only be queried after a link if the link was successful.
+
+ Error GL.INVALID_VALUE is generated if program is not a value generated by
+ OpenGL. GL.INVALID_OPERATION is generated if program is not a program object.
+ GL.INVALID_OPERATION is generated if program has not been successfully
+ linked. GL.INVALID_OPERATION is generated if GetUniformLocation is executed
+ between the execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "GetUniformfv",
+ copy: "GetUniformiv",
+}, {
+ name: "GetUniformiv",
+ params: paramTweaks{
+ "params": {replace: true},
+ },
+ before: `
+ var params_c [4]{{paramGoType . "params"}}
+ `,
+ after: `
+ copy(params, params_c[:])
+ `,
+ doc: `
+ returns in params the value of the specified uniform
+ variable. The type of the uniform variable specified by location
+ determines the number of values returned. If the uniform variable is
+ defined in the shader as a boolean, int, or float, a single value will be
+ returned. If it is defined as a vec2, ivec2, or bvec2, two values will be
+ returned. If it is defined as a vec3, ivec3, or bvec3, three values will
+ be returned, and so on. To query values stored in uniform variables
+ declared as arrays, call {{.GoName}} for each element of the array. To
+ query values stored in uniform variables declared as structures, call
+ {{.GoName}} for each field in the structure. The values for uniform
+ variables declared as a matrix will be returned in column major order.
+
+ The locations assigned to uniform variables are not known until the
+ program object is linked. After linking has occurred, the command
+ GetUniformLocation can be used to obtain the location of a uniform
+ variable. This location value can then be passed to {{.GoName}} in order
+ to query the current value of the uniform variable. After a program object
+ has been linked successfully, the index values for uniform variables
+ remain fixed until the next link command occurs. The uniform variable
+ values can only be queried after a link if the link was successful.
+
+ Error GL.INVALID_VALUE is generated if program is not a value generated by
+ OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+ object. GL.INVALID_OPERATION is generated if program has not been
+ successfully linked. GL.INVALID_OPERATION is generated if location does
+ not correspond to a valid uniform variable location for the specified
+ program object. GL.INVALID_OPERATION is generated if {{.GoName}} is
+ executed between the execution of Begin and the corresponding execution of
+ End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "GetVertexAttribdv",
+ copy: "GetVertexAttribiv",
+}, {
+ name: "GetVertexAttribfv",
+ copy: "GetVertexAttribiv",
+}, {
+ name: "GetVertexAttribiv",
+ params: paramTweaks{
+ "params": {replace: true},
+ },
+ before: `
+ var params_c [4]{{paramGoType . "params"}}
+ `,
+ after: `
+ copy(params, params_c[:])
+ `,
+ doc: `
+ returns in params the value of a generic vertex attribute
+ parameter. The generic vertex attribute to be queried is specified by
+ index, and the parameter to be queried is specified by pname.
+
+ The accepted parameter names are as follows:
+
+ GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING
+ params returns a single value, the name of the buffer object
+ currently bound to the binding point corresponding to generic vertex
+ attribute array index. If no buffer object is bound, 0 is returned.
+ The initial value is 0.
+
+ GL.VERTEX_ATTRIB_ARRAY_ENABLED
+ params returns a single value that is non-zero (true) if the vertex
+ attribute array for index is enabled and 0 (false) if it is
+ disabled. The initial value is 0.
+
+ GL.VERTEX_ATTRIB_ARRAY_SIZE
+ params returns a single value, the size of the vertex attribute
+ array for index. The size is the number of values for each element
+ of the vertex attribute array, and it will be 1, 2, 3, or 4. The
+ initial value is 4.
+
+ GL.VERTEX_ATTRIB_ARRAY_STRIDE
+ params returns a single value, the array stride for (number of bytes
+ between successive elements in) the vertex attribute array for
+ index. A value of 0 indicates that the array elements are stored
+ sequentially in memory. The initial value is 0.
+
+ GL.VERTEX_ATTRIB_ARRAY_TYPE
+ params returns a single value, a symbolic constant indicating the
+ array type for the vertex attribute array for index. Possible values
+ are GL.BYTE, GL.UNSIGNED_BYTE, GL.SHORT, GL.UNSIGNED_SHORT, GL.INT,
+ GL.UNSIGNED_INT, GL.FLOAT, and GL.DOUBLE. The initial value is
+ GL.FLOAT.
+
+ GL.VERTEX_ATTRIB_ARRAY_NORMALIZED
+ params returns a single value that is non-zero (true) if fixed-point
+ data types for the vertex attribute array indicated by index are
+ normalized when they are converted to floating point, and 0 (false)
+ otherwise. The initial value is 0.
+
+ GL.CURRENT_VERTEX_ATTRIB
+ params returns four values that represent the current value for the
+ generic vertex attribute specified by index. Generic vertex
+ attribute 0 is unique in that it has no current state, so an error
+ will be generated if index is 0. The initial value for all other
+ generic vertex attributes is (0,0,0,1).
+
+ All of the parameters except GL.CURRENT_VERTEX_ATTRIB represent
+ client-side state.
+
+ Error GL.INVALID_VALUE is generated if index is greater than or equal to
+ GL.MAX_VERTEX_ATTRIBS. GL.INVALID_ENUM is generated if pname is not an
+ accepted value. GL.INVALID_OPERATION is generated if index is 0 and pname
+ is GL.CURRENT_VERTEX_ATTRIB.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "LinkProgram",
+ doc: `
+ links the program object specified by program. If any shader
+ objects of type GL.VERTEX_SHADER are attached to program, they will be
+ used to create an executable that will run on the programmable vertex
+ processor. If any shader objects of type GL.FRAGMENT_SHADER are attached
+ to program, they will be used to create an executable that will run on the
+ programmable fragment processor.
+
+ The status of the link operation will be stored as part of the program
+ object's state. This value will be set to GL.TRUE if the program object
+ was linked without errors and is ready for use, and GL.FALSE otherwise. It
+ can be queried by calling GetProgramiv with arguments program and
+ GL.LINK_STATUS.
+
+ As a result of a successful link operation, all active user-defined
+ uniform variables belonging to program will be initialized to 0, and each
+ of the program object's active uniform variables will be assigned a
+ location that can be queried by calling GetUniformLocation. Also, any
+ active user-defined attribute variables that have not been bound to a
+ generic vertex attribute index will be bound to one at this time.
+
+ Linking of a program object can fail for a number of reasons as specified
+ in the OpenGL Shading Language Specification. The following lists some of
+ the conditions that will cause a link error.
+
+ - The number of active attribute variables supported by the
+ implementation has been exceeded.
+
+ - The storage limit for uniform variables has been exceeded.
+
+ - The number of active uniform variables supported by the implementation
+ has been exceeded.
+
+ - The main function is missing for the vertex shader or the fragment
+ shader.
+
+ - A varying variable actually used in the fragment shader is not
+ declared in the same way (or is not declared at all) in the vertex
+ shader.
+
+ - A reference to a function or variable name is unresolved.
+
+ - A shared global is declared with two different types or two different
+ initial values.
+
+ - One or more of the attached shader objects has not been successfully
+ compiled.
+
+ - Binding a generic attribute matrix caused some rows of the matrix to
+ fall outside the allowed maximum of GL.MAX_VERTEX_ATTRIBS.
+
+ - Not enough contiguous vertex attribute slots could be found to bind
+ attribute matrices.
+
+ When a program object has been successfully linked, the program object can
+ be made part of current state by calling UseProgram. Whether or not the
+ link operation was successful, the program object's information log will
+ be overwritten. The information log can be retrieved by calling
+ GetProgramInfoLog.
+
+ LinkProgram will also install the generated executables as part of the
+ current rendering state if the link operation was successful and the
+ specified program object is already currently in use as a result of a
+ previous call to UseProgram. If the program object currently in use is
+ relinked unsuccessfully, its link status will be set to GL.FALSE , but the
+ executables and associated state will remain part of the current state
+ until a subsequent call to UseProgram removes it from use. After it is
+ removed from use, it cannot be made part of current state until it has
+ been successfully relinked.
+
+ If program contains shader objects of type GL.VERTEX_SHADER but does not
+ contain shader objects of type GL.FRAGMENT_SHADER, the vertex shader will
+ be linked against the implicit interface for fixed functionality fragment
+ processing. Similarly, if program contains shader objects of type
+ GL.FRAGMENT_SHADER but it does not contain shader objects of type
+ GL.VERTEX_SHADER, the fragment shader will be linked against the implicit
+ interface for fixed functionality vertex processing.
+
+ The program object's information log is updated and the program is
+ generated at the time of the link operation. After the link operation,
+ applications are free to modify attached shader objects, compile attached
+ shader objects, detach shader objects, delete shader objects, and attach
+ additional shader objects. None of these operations affects the
+ information log or the program that is part of the program object.
+
+ If the link operation is unsuccessful, any information about a previous
+ link operation on program is lost (a failed link does not restore the
+ old state of program). Certain information can still be retrieved
+ from program even after an unsuccessful link operation. See for instance
+ GetActiveAttrib and GetActiveUniform.
+
+ Error GL.INVALID_VALUE is generated if program is not a value generated by
+ OpenGL. GL.INVALID_OPERATION is generated if program is not a program
+ object. GL.INVALID_OPERATION is generated if LinkProgram is executed
+ between the execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "MultMatrixd",
+ before: `
+ if len(m) != 16 {
+ panic("parameter m must have length 16 for the 4x4 matrix")
+ }
+ `,
+ doc: `
+ multiplies the current matrix with the provided matrix.
+
+ The m parameter must hold 16 consecutive elements of a 4x4 column-major matrix.
+
+ The current matrix is determined by the current matrix mode (see
+ MatrixMode). It is either the projection matrix, modelview matrix, or the
+ texture matrix.
+
+ For example, if the current matrix is C and the coordinates to be transformed
+ are v = (v[0], v[1], v[2], v[3]), then the current transformation is C × v, or
+
+ c[0] c[4] c[8] c[12] v[0]
+ c[1] c[5] c[9] c[13] v[1]
+ c[2] c[6] c[10] c[14] X v[2]
+ c[3] c[7] c[11] c[15] v[3]
+
+ Calling MultMatrix with an argument of m = m[0], m[1], ..., m[15]
+ replaces the current transformation with (C X M) x v, or
+
+ c[0] c[4] c[8] c[12] m[0] m[4] m[8] m[12] v[0]
+ c[1] c[5] c[9] c[13] m[1] m[5] m[9] m[13] v[1]
+ c[2] c[6] c[10] c[14] X m[2] m[6] m[10] m[14] X v[2]
+ c[3] c[7] c[11] c[15] m[3] m[7] m[11] m[15] v[3]
+
+ Where 'X' denotes matrix multiplication, and v is represented as a 4x1 matrix.
+
+ While the elements of the matrix may be specified with single or double
+ precision, the GL may store or operate on these values in less-than-single
+ precision.
+
+ In many computer languages, 4×4 arrays are represented in row-major
+ order. The transformations just described represent these matrices in
+ column-major order. The order of the multiplication is important. For
+ example, if the current transformation is a rotation, and MultMatrix is
+ called with a translation matrix, the translation is done directly on the
+ coordinates to be transformed, while the rotation is done on the results
+ of that translation.
+
+ GL.INVALID_OPERATION is generated if MultMatrix is executed between the
+ execution of Begin and the corresponding execution of End.
+ `,
+}, {
+ name: "MultMatrixf",
+ copy: "MultMatrixd",
+}, {
+ name: "ShaderSource",
+ params: paramTweaks{
+ "glstring": {rename: "source", retype: "...string", replace: true},
+ "length": {omit: true},
+ "count": {omit: true},
+ },
+ before: `
+ count := len(source)
+ length := make([]int32, count)
+ source_c := make([]unsafe.Pointer, count)
+ for i, src := range source {
+ length[i] = int32(len(src))
+ if len(src) > 0 {
+ source_c[i] = *(*unsafe.Pointer)(unsafe.Pointer(&src))
+ } else {
+ source_c[i] = unsafe.Pointer(uintptr(0))
+ }
+ }
+ `,
+ doc: `
+ sets the source code in shader to the provided source code. Any source
+ code previously stored in the shader object is completely replaced.
+
+ Error GL.INVALID_VALUE is generated if shader is not a value generated by
+ OpenGL. GL.INVALID_OPERATION is generated if shader is not a shader
+ object. GL.INVALID_VALUE is generated if count is less than 0.
+ GL.INVALID_OPERATION is generated if ShaderSource is executed between the
+ execution of Begin and the corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "Uniform1f",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform2f",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform3f",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform4f",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform1i",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform2i",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform3i",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform4i",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform1ui",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform2ui",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform3ui",
+ copy: "Uniform4ui",
+}, {
+ name: "Uniform4ui",
+ doc: `
+ modifies the value of a single uniform variable.
+ The location of the uniform variable to be modified is specified by
+ location, which should be a value returned by GetUniformLocation.
+ {{.GoName}} operates on the program object that was made part of
+ current state by calling UseProgram.
+
+ The functions Uniform{1|2|3|4}{f|i|ui} are used to change the value of the
+ uniform variable specified by location using the values passed as
+ arguments. The number specified in the function should match the number of
+ components in the data type of the specified uniform variable (1 for
+ float, int, unsigned int, bool; 2 for vec2, ivec2, uvec2, bvec2, etc.).
+ The suffix f indicates that floating-point values are being passed; the
+ suffix i indicates that integer values are being passed; the suffix ui
+ indicates that unsigned integer values are being passed, and this type
+ should also match the data type of the specified uniform variable. The i
+ variants of this function should be used to provide values for uniform
+ variables defined as int, ivec2, ivec3, ivec4, or arrays of these. The ui
+ variants of this function should be used to provide values for uniform
+ variables defined as unsigned int, uvec2, uvec3, uvec4, or arrays of
+ these. The f variants should be used to provide values for uniform
+ variables of type float, vec2, vec3, vec4, or arrays of these. Either the
+ i, ui or f variants may be used to provide values for uniform variables of
+ type bool, bvec2, bvec3, bvec4, or arrays of these. The uniform variable
+ will be set to false if the input value is 0 or 0.0f, and it will be set
+ to true otherwise.
+
+ Uniform1i and Uniform1iv are the only two functions that may be used to
+ load uniform variables defined as sampler types. Loading samplers with any
+ other function will result in a GL.INVALID_OPERATION error.
+
+ All active uniform variables defined in a program object are initialized
+ to 0 when the program object is linked successfully. They retain the
+ values assigned to them by a call to Uniform* until the next successful
+ link operation occurs on the program object, when they are once again
+ initialized to 0.
+ `,
+}, {
+ name: "Uniform1fv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform2fv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform3fv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform4fv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform1iv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform2iv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform3iv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform4iv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform1uiv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform2uiv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform3uiv",
+ copy: "Uniform4uiv",
+}, {
+ name: "Uniform4uiv",
+ params: paramTweaks{
+ "count": {omit: true},
+ },
+ before: `
+ if len(value) == 0 {
+ return
+ } {{with $n := substr .GoName 7 8}}{{if ne $n "1"}}
+ if len(value)%{{$n}} != 0 {
+ panic("invalid value length for {{$.GoName}}")
+ }
+ count := len(value)/{{$n}}
+ {{else}}
+ count := len(value)
+ {{end}}{{end}}
+ `,
+ doc: `
+ modifies the value of a uniform variable or a uniform
+ variable array. The location of the uniform variable to be modified is
+ specified by location, which should be a value returned by GetUniformLocation.
+ {{.GoName}} operates on the program object that was made part of
+ current state by calling UseProgram.
+
+ The functions Uniform{1|2|3|4}{f|i|ui}v can be used to modify a single
+ uniform variable or a uniform variable array. These functions receive a
+ slice with the values to be loaded into a uniform variable or a uniform
+ variable array. A slice with length 1 should be used if modifying the value
+ of a single uniform variable, and a length of 1 or greater can be used to
+ modify an entire array or part of an array. When loading n elements
+ starting at an arbitrary position m in a uniform variable array, elements
+ m + n - 1 in the array will be replaced with the new values. If m + n - 1
+ is larger than the size of the uniform variable array, values for all
+ array elements beyond the end of the array will be ignored. The number
+ specified in the name of the command indicates the number of components
+ for each element in value, and it should match the number of components in
+ the data type of the specified uniform variable (1 for float, int, bool;
+ 2 for vec2, ivec2, bvec2, etc.). The data type specified in the name
+ of the command must match the data type for the specified uniform variable
+ as described for Uniform{1|2|3|4}{f|i|ui}.
+
+ Uniform1i and Uniform1iv are the only two functions that may be used to
+ load uniform variables defined as sampler types. Loading samplers with any
+ other function will result in a GL.INVALID_OPERATION error.
+
+ All active uniform variables defined in a program object are initialized
+ to 0 when the program object is linked successfully. They retain the
+ values assigned to them by a call to Uniform* until the next successful
+ link operation occurs on the program object, when they are once again
+ initialized to 0.
+ `,
+}, {
+ name: "UniformMatrix2fv",
+ copy: "UniformMatrix4x3fv",
+}, {
+ name: "UniformMatrix2x3fv",
+ copy: "UniformMatrix4x3fv",
+}, {
+ name: "UniformMatrix2x4fv",
+ copy: "UniformMatrix4x3fv",
+}, {
+ name: "UniformMatrix3fv",
+ copy: "UniformMatrix4x3fv",
+}, {
+ name: "UniformMatrix3x2fv",
+ copy: "UniformMatrix4x3fv",
+}, {
+ name: "UniformMatrix3x4fv",
+ copy: "UniformMatrix4x3fv",
+}, {
+ name: "UniformMatrix4fv",
+ copy: "UniformMatrix4x3fv",
+}, {
+ name: "UniformMatrix4x2fv",
+ copy: "UniformMatrix4x3fv",
+}, {
+ name: "UniformMatrix4x3fv",
+ params: paramTweaks{
+ "count": {omit: true},
+ },
+ before: `
+ if len(value) == 0 {
+ return
+ } {{with $n := substr $.GoName 13 14}}{{with $m := substr $.GoName 15 16}}{{if eq $m "v"}}
+ if len(value)%({{$n}}*{{$n}}) != 0 {
+ panic("invalid value length for {{$.GoName}}")
+ }
+ count := len(value)/({{$n}}*{{$n}})
+ {{else}}
+ if len(value)%({{$n}}*{{$m}}) != 0 {
+ panic("invalid value length for {{$.GoName}}")
+ }
+ count := len(value)/({{$n}}*{{$m}})
+ {{end}}{{end}}{{end}}
+ `,
+ doc: `
+ modifies the value of a uniform variable or a uniform
+ variable array. The location of the uniform variable to be modified is
+ specified by location, which should be a value returned by GetUniformLocation.
+ {{.GoName}} operates on the program object that was made part of
+ current state by calling UseProgram.
+
+ The functions UniformMatrix{2|3|4|2x3|3x2|2x4|4x2|3x4|4x3}fv are used to
+ modify a matrix or an array of matrices. The numbers in the function name
+ are interpreted as the dimensionality of the matrix. The number 2
+ indicates a 2x2 matrix (4 values), the number 3 indicates a 3x3 matrix (9
+ values), and the number 4 indicates a 4x4 matrix (16 values). Non-square
+ matrix dimensionality is explicit, with the first number representing the
+ number of columns and the second number representing the number of rows.
+ For example, 2x4 indicates a 2x4 matrix with 2 columns and 4 rows (8
+ values). The length of the provided slice must be a multiple of the number
+ of values per matrix, to update one or more consecutive matrices.
+
+ If transpose is false, each matrix is assumed to be supplied in column
+ major order. If transpose is true, each matrix is assumed to be supplied
+ in row major order.
+
+ All active uniform variables defined in a program object are initialized
+ to 0 when the program object is linked successfully. They retain the
+ values assigned to them by a call to Uniform* until the next successful
+ link operation occurs on the program object, when they are once again
+ initialized to 0.
+ `,
+}, {
+ name: "UseProgram",
+ doc: `
+ installs the program object specified by program as part of
+ current rendering state. One or more executables are created in a program
+ object by successfully attaching shader objects to it with AttachShader,
+ successfully compiling the shader objects with CompileShader, and
+ successfully linking the program object with LinkProgram.
+
+ A program object will contain an executable that will run on the vertex
+ processor if it contains one or more shader objects of type
+ GL.VERTEX_SHADER that have been successfully compiled and linked.
+ Similarly, a program object will contain an executable that will run on
+ the fragment processor if it contains one or more shader objects of type
+ GL.FRAGMENT_SHADER that have been successfully compiled and linked.
+
+ Successfully installing an executable on a programmable processor will
+ cause the corresponding fixed functionality of OpenGL to be disabled.
+ Specifically, if an executable is installed on the vertex processor, the
+ OpenGL fixed functionality will be disabled as follows.
+
+ - The modelview matrix is not applied to vertex coordinates.
+
+ - The projection matrix is not applied to vertex coordinates.
+
+ - The texture matrices are not applied to texture coordinates.
+
+ - Normals are not transformed to eye coordinates.
+
+ - Normals are not rescaled or normalized.
+
+ - Normalization of GL.AUTO_NORMAL evaluated normals is not performed.
+
+ - Texture coordinates are not generated automatically.
+
+ - Per-vertex lighting is not performed.
+
+ - Color material computations are not performed.
+
+ - Color index lighting is not performed.
+
+ - This list also applies when setting the current raster position.
+
+ The executable that is installed on the vertex processor is expected to
+ implement any or all of the desired functionality from the preceding list.
+ Similarly, if an executable is installed on the fragment processor, the
+ OpenGL fixed functionality will be disabled as follows.
+
+ - Texture environment and texture functions are not applied.
+
+ - Texture application is not applied.
+
+ - Color sum is not applied.
+
+ - Fog is not applied.
+
+ Again, the fragment shader that is installed is expected to implement any
+ or all of the desired functionality from the preceding list.
+
+ While a program object is in use, applications are free to modify attached
+ shader objects, compile attached shader objects, attach additional shader
+ objects, and detach or delete shader objects. None of these operations
+ will affect the executables that are part of the current state. However,
+ relinking the program object that is currently in use will install the
+ program object as part of the current rendering state if the link
+ operation was successful (see LinkProgram). If the program object
+ currently in use is relinked unsuccessfully, its link status will be set
+ to GL.FALSE, but the executables and associated state will remain part of
+ the current state until a subsequent call to UseProgram removes it from
+ use. After it is removed from use, it cannot be made part of current state
+ until it has been successfully relinked.
+
+ If program contains shader objects of type GL.VERTEX_SHADER but it does
+ not contain shader objects of type GL.FRAGMENT_SHADER, an executable will
+ be installed on the vertex processor, but fixed functionality will be used
+ for fragment processing. Similarly, if program contains shader objects of
+ type GL.FRAGMENT_SHADER but it does not contain shader objects of type
+ GL.VERTEX_SHADER, an executable will be installed on the fragment
+ processor, but fixed functionality will be used for vertex processing. If
+ program is 0, the programmable processors will be disabled, and fixed
+ functionality will be used for both vertex and fragment processing.
+
+ While a program object is in use, the state that controls the disabled
+ fixed functionality may also be updated using the normal OpenGL calls.
+
+ Like display lists and texture objects, the name space for program objects
+ may be shared across a set of contexts, as long as the server sides of the
+ contexts share the same address space. If the name space is shared across
+ contexts, any attached objects and the data associated with those attached
+ objects are shared as well.
+
+ Applications are responsible for providing the synchronization across API
+ calls when objects are accessed from different execution threads.
+
+ Error GL.INVALID_VALUE is generated if program is neither 0 nor a value
+ generated by OpenGL. GL.INVALID_OPERATION is generated if program is not
+ a program object. GL.INVALID_OPERATION is generated if program could not
+ be made part of current state. GL.INVALID_OPERATION is generated if
+ UseProgram is executed between the execution of Begin and the
+ corresponding execution of End.
+
+ {{funcSince . "2.0+"}}
+ `,
+}, {
+ name: "VertexAttribPointer",
+ params: paramTweaks{
+ "pointer": {rename: "offset", retype: "uintptr"},
+ },
+ before: `
+ offset_ptr := unsafe.Pointer(offset)
+ `,
+ doc: `
+ specifies the location and data format of the array
+ of generic vertex attributes at index to use when rendering. size
+ specifies the number of components per attribute and must be 1, 2, 3, or
+ 4. type specifies the data type of each component, and stride specifies
+ the byte stride from one attribute to the next, allowing vertices and
+ attributes to be packed into a single array or stored in separate arrays.
+ normalized indicates whether the values stored in an integer format are
+ to be mapped to the range [-1,1] (for signed values) or [0,1]
+ (for unsigned values) when they are accessed and converted to floating
+ point; otherwise, values will be converted to floats directly without
+ normalization. offset is a byte offset into the buffer object's data
+ store, which must be bound to the GL.ARRAY_BUFFER target with BindBuffer.
+
+ The buffer object binding (GL.ARRAY_BUFFER_BINDING) is saved as
+ generic vertex attribute array client-side state
+ (GL.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING) for the provided index.
+
+ To enable and disable a generic vertex attribute array, call
+ EnableVertexAttribArray and DisableVertexAttribArray with index. If
+ enabled, the generic vertex attribute array is used when DrawArrays or
+ DrawElements is called. Each generic vertex attribute array is initially
+ disabled.
+
+ VertexAttribPointer is typically implemented on the client side.
+
+ Error GL.INVALID_ENUM is generated if type is not an accepted value.
+ GL.INVALID_VALUE is generated if index is greater than or equal to
+ GL.MAX_VERTEX_ATTRIBS. GL.INVALID_VALUE is generated if size is not 1, 2,
+ 3, or 4. GL.INVALID_VALUE is generated if stride is negative.
+ `,
+}}
+
+// vim:ts=8:tw=90:noet
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/gl.xml b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/gl.xml
new file mode 100644
index 000000000..d5c920237
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/gl.xml
@@ -0,0 +1,43891 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registry>
+ <comment>
+Copyright (c) 2013-2014 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+------------------------------------------------------------------------
+
+This file, gl.xml, is the OpenGL and OpenGL API Registry. The older
+".spec" file format has been retired and will no longer be updated with
+new extensions and API versions. The canonical version of the registry,
+together with documentation, schema, and Python generator scripts used
+to generate C header files for OpenGL and OpenGL ES, can always be found
+in the Khronos Registry at
+ http://www.opengl.org/registry/
+ </comment>
+
+ <!-- SECTION: GL type definitions. -->
+ <types>
+ <!-- These are dependencies GL types require to be declared legally -->
+ <type name="stddef">#include &lt;stddef.h&gt;</type>
+ <type name="khrplatform">#include &lt;KHR/khrplatform.h&gt;</type>
+ <type name="inttypes">#ifndef GLEXT_64_TYPES_DEFINED
+/* This code block is duplicated in glxext.h, so must be protected */
+#define GLEXT_64_TYPES_DEFINED
+/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+/* (as used in the GL_EXT_timer_query extension). */
+#if defined(__STDC_VERSION__) &amp;&amp; __STDC_VERSION__ &gt;= 199901L
+#include &lt;inttypes.h&gt;
+#elif defined(__sun__) || defined(__digital__)
+#include &lt;inttypes.h&gt;
+#if defined(__STDC__)
+#if defined(__arch64__) || defined(_LP64)
+typedef long int int64_t;
+typedef unsigned long int uint64_t;
+#else
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#endif /* __arch64__ */
+#endif /* __STDC__ */
+#elif defined( __VMS ) || defined(__sgi)
+#include &lt;inttypes.h&gt;
+#elif defined(__SCO__) || defined(__USLC__)
+#include &lt;stdint.h&gt;
+#elif defined(__UNIXOS2__) || defined(__SOL64__)
+typedef long int int32_t;
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#elif defined(_WIN32) &amp;&amp; defined(__GNUC__)
+#include &lt;stdint.h&gt;
+#elif defined(_WIN32)
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+/* Fallback if nothing above works */
+#include &lt;inttypes.h&gt;
+#endif
+#endif</type>
+ <!-- These are actual GL types -->
+ <type>typedef unsigned int <name>GLenum</name>;</type>
+ <type>typedef unsigned char <name>GLboolean</name>;</type>
+ <type>typedef unsigned int <name>GLbitfield</name>;</type>
+ <type comment="Not an actual GL type, though used in headers in the past">typedef void <name>GLvoid</name>;</type>
+ <type>typedef signed char <name>GLbyte</name>;</type>
+ <type>typedef short <name>GLshort</name>;</type>
+ <type>typedef int <name>GLint</name>;</type>
+ <type>typedef int <name>GLclampx</name>;</type>
+ <type>typedef unsigned char <name>GLubyte</name>;</type>
+ <type>typedef unsigned short <name>GLushort</name>;</type>
+ <type>typedef unsigned int <name>GLuint</name>;</type>
+ <type>typedef int <name>GLsizei</name>;</type>
+ <type>typedef float <name>GLfloat</name>;</type>
+ <type>typedef float <name>GLclampf</name>;</type>
+ <type>typedef double <name>GLdouble</name>;</type>
+ <type>typedef double <name>GLclampd</name>;</type>
+ <type>typedef void *<name>GLeglImageOES</name>;</type>
+ <type>typedef char <name>GLchar</name>;</type>
+ <type>typedef char <name>GLcharARB</name>;</type>
+ <type name="GLhandleARB">#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif</type>
+ <type>typedef unsigned short <name>GLhalfARB</name>;</type>
+ <type>typedef unsigned short <name>GLhalf</name>;</type>
+ <type comment="Must be 32 bits">typedef GLint <name>GLfixed</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLintptr</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLsizeiptr</name>;</type>
+ <type requires="inttypes">typedef int64_t <name>GLint64</name>;</type>
+ <type requires="inttypes">typedef uint64_t <name>GLuint64</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLintptrARB</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLsizeiptrARB</name>;</type>
+ <type requires="inttypes">typedef int64_t <name>GLint64EXT</name>;</type>
+ <type requires="inttypes">typedef uint64_t <name>GLuint64EXT</name>;</type>
+ <type>typedef struct __GLsync *<name>GLsync</name>;</type>
+ <type comment="compatible with OpenCL cl_context"><name>struct _cl_context</name>;</type>
+ <type comment="compatible with OpenCL cl_event"><name>struct _cl_event</name>;</type>
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROC</name>)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);</type>
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROCARB</name>)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);</type>
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROCKHR</name>)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);</type>
+ <!-- GLES 1 types -->
+ <type api="gles1" requires="khrplatform">typedef khronos_int32_t <name>GLclampx</name>;</type>
+ <!-- GLES 1/2 types (tagged for GLES 1) -->
+ <type api="gles1" requires="khrplatform">typedef khronos_int8_t <name>GLbyte</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_uint8_t <name>GLubyte</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_float_t <name>GLfloat</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_float_t <name>GLclampf</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_int32_t <name>GLfixed</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_int64_t <name>GLint64</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_uint64_t <name>GLuint64</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_intptr_t <name>GLintptr</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_ssize_t <name>GLsizeiptr</name>;</type>
+ <!-- GLES 1/2 types (tagged for GLES 2 - attribute syntax is limited) -->
+ <type api="gles2" requires="khrplatform">typedef khronos_int8_t <name>GLbyte</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_uint8_t <name>GLubyte</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_float_t <name>GLfloat</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_float_t <name>GLclampf</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_int32_t <name>GLfixed</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_int64_t <name>GLint64</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_uint64_t <name>GLuint64</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_int64_t <name>GLint64EXT</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_uint64_t <name>GLuint64EXT</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_intptr_t <name>GLintptr</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_ssize_t <name>GLsizeiptr</name>;</type>
+ <!-- GLES 2 types (none currently) -->
+ <!-- Vendor extension types -->
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROCAMD</name>)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);</type>
+ <type>typedef unsigned short <name>GLhalfNV</name>;</type>
+ <type requires="GLintptr">typedef GLintptr <name>GLvdpauSurfaceNV</name>;</type>
+ </types>
+
+ <!-- SECTION: GL parameter class type definitions. -->
+
+ <groups>
+ <group name="AccumOp">
+ <enum name="GL_ACCUM"/>
+ <enum name="GL_LOAD"/>
+ <enum name="GL_RETURN"/>
+ <enum name="GL_MULT"/>
+ <enum name="GL_ADD"/>
+ </group>
+
+ <group name="AttribMask">
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_ALL_ATTRIB_BITS"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_CURRENT_BIT"/>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_ENABLE_BIT"/>
+ <enum name="GL_EVAL_BIT"/>
+ <enum name="GL_FOG_BIT"/>
+ <enum name="GL_HINT_BIT"/>
+ <enum name="GL_LIGHTING_BIT"/>
+ <enum name="GL_LINE_BIT"/>
+ <enum name="GL_LIST_BIT"/>
+ <enum name="GL_MULTISAMPLE_BIT"/>
+ <enum name="GL_MULTISAMPLE_BIT_3DFX"/>
+ <enum name="GL_MULTISAMPLE_BIT_ARB"/>
+ <enum name="GL_MULTISAMPLE_BIT_EXT"/>
+ <enum name="GL_PIXEL_MODE_BIT"/>
+ <enum name="GL_POINT_BIT"/>
+ <enum name="GL_POLYGON_BIT"/>
+ <enum name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum name="GL_SCISSOR_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_TEXTURE_BIT"/>
+ <enum name="GL_TRANSFORM_BIT"/>
+ <enum name="GL_VIEWPORT_BIT"/>
+ </group>
+
+ <group name="AlphaFunction">
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_NOTEQUAL"/>
+ </group>
+
+ <group name="BlendEquationModeEXT">
+ <enum name="GL_ALPHA_MAX_SGIX"/>
+ <enum name="GL_ALPHA_MIN_SGIX"/>
+ <enum name="GL_FUNC_ADD_EXT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+ <enum name="GL_FUNC_SUBTRACT_EXT"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_MAX_EXT"/>
+ <enum name="GL_MIN_EXT"/>
+ </group>
+
+ <group name="BlendingFactorDest">
+ <enum name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ZERO"/>
+ </group>
+
+ <group name="BlendingFactorSrc">
+ <enum name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_ZERO"/>
+ </group>
+
+ <group name="Boolean">
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ </group>
+
+ <group name="ClearBufferMask">
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_COVERAGE_BUFFER_BIT_NV"/>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ </group>
+
+ <group name="ClientAttribMask">
+ <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ </group>
+
+ <group name="ClipPlaneName">
+ <enum name="GL_CLIP_DISTANCE0"/>
+ <enum name="GL_CLIP_DISTANCE1"/>
+ <enum name="GL_CLIP_DISTANCE2"/>
+ <enum name="GL_CLIP_DISTANCE3"/>
+ <enum name="GL_CLIP_DISTANCE4"/>
+ <enum name="GL_CLIP_DISTANCE5"/>
+ <enum name="GL_CLIP_DISTANCE6"/>
+ <enum name="GL_CLIP_DISTANCE7"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ </group>
+
+ <group name="ColorMaterialFace">
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ </group>
+
+ <group name="ColorMaterialParameter">
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SPECULAR"/>
+ </group>
+
+ <group name="ColorPointerType">
+ <enum name="GL_BYTE"/>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ </group>
+
+ <group name="ColorTableParameterPNameSGI">
+ <enum name="GL_COLOR_TABLE_BIAS"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ </group>
+
+ <group name="ColorTableTargetSGI">
+ <enum name="GL_COLOR_TABLE"/>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_COLOR_TABLE"/>
+ <enum name="GL_PROXY_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ </group>
+
+ <group name="ContextFlagMask">
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
+ <enum name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
+ <enum name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
+ </group>
+
+ <group name="ContextProfileMask">
+ <enum name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+ <enum name="GL_CONTEXT_CORE_PROFILE_BIT"/>
+ </group>
+
+ <group name="ConvolutionBorderModeEXT">
+ <enum name="GL_REDUCE"/>
+ <enum name="GL_REDUCE_EXT"/>
+ </group>
+
+ <group name="ConvolutionParameterEXT">
+ <enum name="GL_CONVOLUTION_BORDER_MODE"/>
+ <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ </group>
+
+ <group name="ConvolutionTargetEXT">
+ <enum name="GL_CONVOLUTION_1D"/>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ </group>
+
+ <group name="CullFaceMode">
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ </group>
+
+ <group name="DataType" comment="See enums block below"/>
+
+ <group name="DepthFunction">
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_NOTEQUAL"/>
+ </group>
+
+ <group name="DrawBufferMode">
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_BACK_LEFT"/>
+ <enum name="GL_BACK_RIGHT"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_FRONT_LEFT"/>
+ <enum name="GL_FRONT_RIGHT"/>
+ <enum name="GL_LEFT"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_NONE_OES"/>
+ <enum name="GL_RIGHT"/>
+ </group>
+
+ <group name="EnableCap">
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_OFFSET_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum name="GL_FRAMEZOOM_SGIX"/>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_INTERLACE_SGIX"/>
+ <enum name="GL_IR_INSTRUMENT1_SGIX"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MINMAX_EXT"/>
+ <enum name="GL_MULTISAMPLE_SGIS"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_LINE"/>
+ <enum name="GL_POLYGON_OFFSET_POINT"/>
+ <enum name="GL_POLYGON_SMOOTH"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum name="GL_RESCALE_NORMAL_EXT"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_SGIS"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ <enum name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ <enum name="GL_SPRITE_SGIX"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ </group>
+
+ <group name="ErrorCode">
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_TABLE_TOO_LARGE"/>
+ <enum name="GL_TABLE_TOO_LARGE_EXT"/>
+ <enum name="GL_TEXTURE_TOO_LARGE_EXT"/>
+ </group>
+
+ <group name="FeedbackType">
+ <enum name="GL_2D"/>
+ <enum name="GL_3D"/>
+ <enum name="GL_3D_COLOR"/>
+ <enum name="GL_3D_COLOR_TEXTURE"/>
+ <enum name="GL_4D_COLOR_TEXTURE"/>
+ </group>
+
+ <group name="FeedBackToken">
+ <enum name="GL_BITMAP_TOKEN"/>
+ <enum name="GL_COPY_PIXEL_TOKEN"/>
+ <enum name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum name="GL_LINE_RESET_TOKEN"/>
+ <enum name="GL_LINE_TOKEN"/>
+ <enum name="GL_PASS_THROUGH_TOKEN"/>
+ <enum name="GL_POINT_TOKEN"/>
+ <enum name="GL_POLYGON_TOKEN"/>
+ </group>
+
+ <group name="FfdMaskSGIX" comment="See enums section below. Was SGIXFfdMask"/>
+
+ <group name="FfdTargetSGIX">
+ <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ </group>
+
+ <group name="FogCoordinatePointerType">
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_DOUBLE"/>
+ </group>
+
+ <group name="FogMode">
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_FOG_FUNC_SGIS"/>
+ <enum name="GL_LINEAR"/>
+ </group>
+
+ <group name="FogParameter">
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ <enum name="GL_FOG_START"/>
+ </group>
+
+ <group name="FogPointerTypeEXT">
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_DOUBLE"/>
+ </group>
+
+ <group name="FogPointerTypeIBM">
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_DOUBLE"/>
+ </group>
+
+ <group name="FragmentLightModelParameterSGIX">
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ </group>
+
+ <group name="FrontFaceDirection">
+ <enum name="GL_CCW"/>
+ <enum name="GL_CW"/>
+ </group>
+
+ <group name="GetColorTableParameterPNameSGI">
+ <enum name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_FORMAT_SGI"/>
+ <enum name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum name="GL_COLOR_TABLE_WIDTH_SGI"/>
+ </group>
+
+ <group name="GetConvolutionParameter">
+ <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ <enum name="GL_CONVOLUTION_FORMAT_EXT"/>
+ <enum name="GL_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_CONVOLUTION_WIDTH_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
+ </group>
+
+ <group name="GetHistogramParameterPNameEXT">
+ <enum name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_FORMAT_EXT"/>
+ <enum name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_RED_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_SINK_EXT"/>
+ <enum name="GL_HISTOGRAM_WIDTH_EXT"/>
+ </group>
+
+ <group name="GetMapQuery">
+ <enum name="GL_COEFF"/>
+ <enum name="GL_DOMAIN"/>
+ <enum name="GL_ORDER"/>
+ </group>
+
+ <group name="GetMinmaxParameterPNameEXT">
+ <enum name="GL_MINMAX_FORMAT"/>
+ <enum name="GL_MINMAX_FORMAT_EXT"/>
+ <enum name="GL_MINMAX_SINK"/>
+ <enum name="GL_MINMAX_SINK_EXT"/>
+ </group>
+
+ <group name="GetPixelMap">
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ </group>
+
+ <group name="GetPName">
+ <enum name="GL_ACCUM_ALPHA_BITS"/>
+ <enum name="GL_ACCUM_BLUE_BITS"/>
+ <enum name="GL_ACCUM_CLEAR_VALUE"/>
+ <enum name="GL_ACCUM_GREEN_BITS"/>
+ <enum name="GL_ACCUM_RED_BITS"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_FUNC_QCOM"/>
+ <enum name="GL_ALPHA_TEST_QCOM"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_ALPHA_TEST_REF_QCOM"/>
+ <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_ASYNC_MARKER_SGIX"/>
+ <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_AUX_BUFFERS"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_BLEND_COLOR_EXT"/>
+ <enum name="GL_BLEND_DST"/>
+ <enum name="GL_BLEND_EQUATION_EXT"/>
+ <enum name="GL_BLEND_SRC"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY_COUNT_EXT"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_COLOR_MATERIAL_FACE"/>
+ <enum name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum name="GL_COLOR_MATRIX_SGI"/>
+ <enum name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ <enum name="GL_CONVOLUTION_HINT_SGIX"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_INDEX"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_RASTER_COLOR"/>
+ <enum name="GL_CURRENT_RASTER_DISTANCE"/>
+ <enum name="GL_CURRENT_RASTER_INDEX"/>
+ <enum name="GL_CURRENT_RASTER_POSITION"/>
+ <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_DEFORMATIONS_MASK_SGIX"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+ <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_DOUBLEBUFFER"/>
+ <enum name="GL_DRAW_BUFFER"/>
+ <enum name="GL_DRAW_BUFFER_EXT"/>
+ <enum name="GL_EDGE_FLAG"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_FUNC_POINTS_SGIS"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_OFFSET_SGIX"/>
+ <enum name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ <enum name="GL_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum name="GL_FRAMEZOOM_SGIX"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_INDEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum name="GL_INDEX_ARRAY_TYPE"/>
+ <enum name="GL_INDEX_BITS"/>
+ <enum name="GL_INDEX_CLEAR_VALUE"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_INDEX_MODE"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_INDEX_WRITEMASK"/>
+ <enum name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
+ <enum name="GL_INTERLACE_SGIX"/>
+ <enum name="GL_IR_INSTRUMENT1_SGIX"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum name="GL_LINE_STIPPLE_REPEAT"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_LINE_WIDTH_RANGE"/>
+ <enum name="GL_LIST_BASE"/>
+ <enum name="GL_LIST_INDEX"/>
+ <enum name="GL_LIST_MODE"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_LOGIC_OP_MODE"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_GRID_DOMAIN"/>
+ <enum name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_GRID_DOMAIN"/>
+ <enum name="GL_MAP2_GRID_SEGMENTS"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+ <enum name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
+ <enum name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIP_DISTANCES"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_MAX_EVAL_ORDER"/>
+ <enum name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
+ <enum name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
+ <enum name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_LIST_NESTING"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_MINMAX_EXT"/>
+ <enum name="GL_MODELVIEW0_MATRIX_EXT"/>
+ <enum name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MULTISAMPLE_SGIS"/>
+ <enum name="GL_NAME_STACK_DEPTH"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY_COUNT_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ <enum name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_PACK_SWAP_BYTES"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum name="GL_POINT_SIZE"/>
+ <enum name="GL_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum name="GL_POINT_SIZE_MIN_SGIS"/>
+ <enum name="GL_POINT_SIZE_RANGE"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_MODE"/>
+ <enum name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_LINE"/>
+ <enum name="GL_POLYGON_OFFSET_POINT"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_SMOOTH"/>
+ <enum name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_READ_BUFFER"/>
+ <enum name="GL_READ_BUFFER_EXT"/>
+ <enum name="GL_READ_BUFFER_NV"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_RED_SCALE"/>
+ <enum name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
+ <enum name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum name="GL_RENDER_MODE"/>
+ <enum name="GL_RESCALE_NORMAL_EXT"/>
+ <enum name="GL_RGBA_MODE"/>
+ <enum name="GL_SAMPLES_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum name="GL_SAMPLE_BUFFERS_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_SGIS"/>
+ <enum name="GL_SAMPLE_PATTERN_SGIS"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_SELECTION_BUFFER_SIZE"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_RANGE"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_RANGE"/>
+ <enum name="GL_SPRITE_AXIS_SGIX"/>
+ <enum name="GL_SPRITE_MODE_SGIX"/>
+ <enum name="GL_SPRITE_SGIX"/>
+ <enum name="GL_SPRITE_TRANSLATION_SGIX"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_STEREO"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_3D_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_4D_BINDING_SGIS"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_BINDING_1D"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_UNPACK_CMYK_HINT_EXT"/>
+ <enum name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_UNPACK_SWAP_BYTES"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_VERTEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ <enum name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_ZOOM_X"/>
+ <enum name="GL_ZOOM_Y"/>
+ </group>
+
+ <group name="GetPointervPName">
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
+ <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER_EXT"/>
+ <enum name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER_EXT"/>
+ <enum name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER_EXT"/>
+ </group>
+
+ <group name="GetTextureParameter">
+ <enum name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_SHADOW_AMBIENT_SGIX"/>
+ <enum name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum name="GL_TEXTURE_4DSIZE_SGIS"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum name="GL_TEXTURE_BORDER"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR_NV"/>
+ <enum name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum name="GL_TEXTURE_COMPONENTS"/>
+ <enum name="GL_TEXTURE_DEPTH_EXT"/>
+ <enum name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
+ <enum name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum name="GL_TEXTURE_HEIGHT"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum name="GL_TEXTURE_LEQUAL_R_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_RED_SIZE"/>
+ <enum name="GL_TEXTURE_RESIDENT"/>
+ <enum name="GL_TEXTURE_WIDTH"/>
+ <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ </group>
+
+ <group name="HintMode">
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ </group>
+
+ <group name="HintTarget">
+ <enum name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
+ <enum name="GL_ALWAYS_FAST_HINT_PGI"/>
+ <enum name="GL_ALWAYS_SOFT_HINT_PGI"/>
+ <enum name="GL_BACK_NORMALS_HINT_PGI"/>
+ <enum name="GL_BINNING_CONTROL_HINT_QCOM"/>
+ <enum name="GL_CLIP_FAR_HINT_PGI"/>
+ <enum name="GL_CLIP_NEAR_HINT_PGI"/>
+ <enum name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+ <enum name="GL_CONSERVE_MEMORY_HINT_PGI"/>
+ <enum name="GL_CONVOLUTION_HINT_SGIX"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ <enum name="GL_FULL_STIPPLE_HINT_PGI"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ <enum name="GL_LINE_QUALITY_HINT_SGIX"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_MATERIAL_SIDE_HINT_PGI"/>
+ <enum name="GL_MAX_VERTEX_HINT_PGI"/>
+ <enum name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+ <enum name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
+ <enum name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_PHONG_HINT_WIN"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+ <enum name="GL_SCALEBIAS_HINT_SGIX"/>
+ <enum name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
+ <enum name="GL_STRICT_LIGHTING_HINT_PGI"/>
+ <enum name="GL_STRICT_SCISSOR_HINT_PGI"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+ <enum name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
+ <enum name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+ <enum name="GL_TRANSFORM_HINT_APPLE"/>
+ <enum name="GL_UNPACK_CMYK_HINT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+ <enum name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
+ <enum name="GL_VERTEX_DATA_HINT_PGI"/>
+ <enum name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ <enum name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum name="GL_WIDE_LINE_HINT_PGI"/>
+ </group>
+
+ <group name="HistogramTargetEXT">
+ <enum name="GL_HISTOGRAM"/>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_PROXY_HISTOGRAM"/>
+ <enum name="GL_PROXY_HISTOGRAM_EXT"/>
+ </group>
+
+ <group name="IndexPointerType">
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+
+ <group name="InterleavedArrayFormat">
+ <enum name="GL_C3F_V3F"/>
+ <enum name="GL_C4F_N3F_V3F"/>
+ <enum name="GL_C4UB_V2F"/>
+ <enum name="GL_C4UB_V3F"/>
+ <enum name="GL_N3F_V3F"/>
+ <enum name="GL_T2F_C3F_V3F"/>
+ <enum name="GL_T2F_C4F_N3F_V3F"/>
+ <enum name="GL_T2F_C4UB_V3F"/>
+ <enum name="GL_T2F_N3F_V3F"/>
+ <enum name="GL_T2F_V3F"/>
+ <enum name="GL_T4F_C4F_N3F_V4F"/>
+ <enum name="GL_T4F_V4F"/>
+ <enum name="GL_V2F"/>
+ <enum name="GL_V3F"/>
+ </group>
+
+ <group name="LightEnvModeSGIX">
+ <enum name="GL_ADD"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_REPLACE"/>
+ </group>
+
+ <group name="LightEnvParameterSGIX">
+ <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
+ </group>
+
+ <group name="LightModelColorControl">
+ <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
+ <enum name="GL_SINGLE_COLOR"/>
+ <enum name="GL_SINGLE_COLOR_EXT"/>
+ </group>
+
+ <group name="LightModelParameter">
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ </group>
+
+ <group name="LightName">
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ </group>
+
+ <group name="LightParameter">
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ </group>
+
+ <group name="ListMode">
+ <enum name="GL_COMPILE"/>
+ <enum name="GL_COMPILE_AND_EXECUTE"/>
+ </group>
+
+ <group name="ListNameType">
+ <enum name="GL_2_BYTES"/>
+ <enum name="GL_3_BYTES"/>
+ <enum name="GL_4_BYTES"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ </group>
+
+ <group name="ListParameterName">
+ <enum name="GL_LIST_PRIORITY_SGIX"/>
+ </group>
+
+ <group name="LogicOp">
+ <enum name="GL_AND"/>
+ <enum name="GL_AND_INVERTED"/>
+ <enum name="GL_AND_REVERSE"/>
+ <enum name="GL_CLEAR"/>
+ <enum name="GL_COPY"/>
+ <enum name="GL_COPY_INVERTED"/>
+ <enum name="GL_EQUIV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_NAND"/>
+ <enum name="GL_NOOP"/>
+ <enum name="GL_NOR"/>
+ <enum name="GL_OR"/>
+ <enum name="GL_OR_INVERTED"/>
+ <enum name="GL_OR_REVERSE"/>
+ <enum name="GL_SET"/>
+ <enum name="GL_XOR"/>
+ </group>
+
+ <group name="MapBufferUsageMask">
+ <enum name="GL_CLIENT_STORAGE_BIT"/>
+ <enum name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum name="GL_MAP_COHERENT_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
+ <enum name="GL_MAP_PERSISTENT_BIT"/>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_READ_BIT_EXT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT_EXT"/>
+ </group>
+
+ <group name="MapTarget">
+ <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ </group>
+
+ <group name="MapTextureFormatINTEL">
+ <enum name="GL_LAYOUT_DEFAULT_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_INTEL"/>
+ </group>
+
+ <group name="MaterialFace">
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ </group>
+
+ <group name="MaterialParameter">
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_COLOR_INDEXES"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_SPECULAR"/>
+ </group>
+
+ <group name="MatrixMode">
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_MODELVIEW0_EXT"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_TEXTURE"/>
+ </group>
+
+ <group name="MemoryBarrierMask">
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_ALL_BARRIER_BITS_EXT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT_EXT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_QUERY_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT_EXT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
+ </group>
+
+ <group name="MeshMode1">
+ <enum name="GL_LINE"/>
+ <enum name="GL_POINT"/>
+ </group>
+
+ <group name="MeshMode2">
+ <enum name="GL_FILL"/>
+ <enum name="GL_LINE"/>
+ <enum name="GL_POINT"/>
+ </group>
+
+ <group name="MinmaxTargetEXT">
+ <enum name="GL_MINMAX"/>
+ <enum name="GL_MINMAX_EXT"/>
+ </group>
+
+ <group name="NormalPointerType">
+ <enum name="GL_BYTE"/>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+
+ <group name="PixelCopyType">
+ <enum name="GL_COLOR"/>
+ <enum name="GL_COLOR_EXT"/>
+ <enum name="GL_DEPTH"/>
+ <enum name="GL_DEPTH_EXT"/>
+ <enum name="GL_STENCIL"/>
+ <enum name="GL_STENCIL_EXT"/>
+ </group>
+
+ <group name="PixelFormat">
+ <enum name="GL_ABGR_EXT"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_CMYKA_EXT"/>
+ <enum name="GL_CMYK_EXT"/>
+ <enum name="GL_COLOR_INDEX"/>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_RED_EXT"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_YCRCB_422_SGIX"/>
+ <enum name="GL_YCRCB_444_SGIX"/>
+ </group>
+
+ <group name="InternalFormat" comment="Was PixelInternalFormat">
+ <enum name="GL_ALPHA12"/>
+ <enum name="GL_ALPHA16"/>
+ <enum name="GL_ALPHA16_ICC_SGIX"/>
+ <enum name="GL_ALPHA4"/>
+ <enum name="GL_ALPHA8"/>
+ <enum name="GL_ALPHA_ICC_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT16_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT24_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT32_SGIX"/>
+ <enum name="GL_DUAL_ALPHA12_SGIS"/>
+ <enum name="GL_DUAL_ALPHA16_SGIS"/>
+ <enum name="GL_DUAL_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_ALPHA8_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY12_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY16_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY4_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY8_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE12_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE16_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE8_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_INTENSITY12"/>
+ <enum name="GL_INTENSITY16"/>
+ <enum name="GL_INTENSITY16_ICC_SGIX"/>
+ <enum name="GL_INTENSITY4"/>
+ <enum name="GL_INTENSITY8"/>
+ <enum name="GL_INTENSITY_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE12"/>
+ <enum name="GL_LUMINANCE12_ALPHA12"/>
+ <enum name="GL_LUMINANCE12_ALPHA4"/>
+ <enum name="GL_LUMINANCE16"/>
+ <enum name="GL_LUMINANCE16_ALPHA16"/>
+ <enum name="GL_LUMINANCE16_ALPHA8_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE16_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE4"/>
+ <enum name="GL_LUMINANCE4_ALPHA4"/>
+ <enum name="GL_LUMINANCE6_ALPHA2"/>
+ <enum name="GL_LUMINANCE8"/>
+ <enum name="GL_LUMINANCE8_ALPHA8"/>
+ <enum name="GL_LUMINANCE_ALPHA_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE_ICC_SGIX"/>
+ <enum name="GL_QUAD_ALPHA4_SGIS"/>
+ <enum name="GL_QUAD_ALPHA8_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY4_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY8_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE4_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE8_SGIS"/>
+ <enum name="GL_R3_G3_B2"/>
+ <enum name="GL_R5_G6_B5_A8_ICC_SGIX"/>
+ <enum name="GL_R5_G6_B5_ICC_SGIX"/>
+ <enum name="GL_RGB10"/>
+ <enum name="GL_RGB10_A2"/>
+ <enum name="GL_RGB12"/>
+ <enum name="GL_RGB16"/>
+ <enum name="GL_RGB2_EXT"/>
+ <enum name="GL_RGB4"/>
+ <enum name="GL_RGB5"/>
+ <enum name="GL_RGB5_A1"/>
+ <enum name="GL_RGB8"/>
+ <enum name="GL_RGBA12"/>
+ <enum name="GL_RGBA16"/>
+ <enum name="GL_RGBA2"/>
+ <enum name="GL_RGBA4"/>
+ <enum name="GL_RGBA8"/>
+ <enum name="GL_RGBA_ICC_SGIX"/>
+ <enum name="GL_RGB_ICC_SGIX"/>
+ </group>
+
+ <group name="PixelMap">
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ </group>
+
+ <group name="PixelStoreParameter">
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ <enum name="GL_PACK_RESAMPLE_OML"/>
+ <enum name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_IMAGES"/>
+ <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_PACK_SWAP_BYTES"/>
+ <enum name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_UNPACK_RESAMPLE_OML"/>
+ <enum name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_ROW_LENGTH_EXT"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS_EXT"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_ROWS_EXT"/>
+ <enum name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_UNPACK_SWAP_BYTES"/>
+ </group>
+
+ <group name="PixelStoreResampleMode">
+ <enum name="GL_RESAMPLE_DECIMATE_SGIX"/>
+ <enum name="GL_RESAMPLE_REPLICATE_SGIX"/>
+ <enum name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
+ </group>
+
+ <group name="PixelStoreSubsampleRate">
+ <enum name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
+ </group>
+
+ <group name="PixelTexGenMode">
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ </group>
+
+ <group name="PixelTexGenParameterNameSGIS">
+ <enum name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+ <enum name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
+ </group>
+
+ <group name="PixelTransferParameter">
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_RED_SCALE"/>
+ </group>
+
+ <group name="PixelType">
+ <enum name="GL_BITMAP"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2"/>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
+ </group>
+
+ <group name="PointParameterNameSGIS">
+ <enum name="GL_DISTANCE_ATTENUATION_EXT"/>
+ <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_SIZE_MAX_ARB"/>
+ <enum name="GL_POINT_SIZE_MAX_EXT"/>
+ <enum name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MIN_ARB"/>
+ <enum name="GL_POINT_SIZE_MIN_EXT"/>
+ <enum name="GL_POINT_SIZE_MIN_SGIS"/>
+ </group>
+
+ <group name="PolygonMode">
+ <enum name="GL_FILL"/>
+ <enum name="GL_LINE"/>
+ <enum name="GL_POINT"/>
+ </group>
+
+ <group name="PrimitiveType">
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINES_ADJACENCY"/>
+ <enum name="GL_LINES_ADJACENCY_ARB"/>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_PATCHES"/>
+ <enum name="GL_PATCHES_EXT"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_POLYGON"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_QUADS_EXT"/>
+ <enum name="GL_QUAD_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLES_ADJACENCY"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ </group>
+
+ <group name="OcclusionQueryEventMaskAMD">
+ <enum name="GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD"/>
+ <enum name="GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD"/>
+ <enum name="GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD"/>
+ <enum name="GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD"/>
+ <enum name="GL_QUERY_ALL_EVENT_BITS_AMD"/>
+ </group>
+
+ <group name="ReadBufferMode">
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_BACK_LEFT"/>
+ <enum name="GL_BACK_RIGHT"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_LEFT"/>
+ <enum name="GL_FRONT_RIGHT"/>
+ <enum name="GL_LEFT"/>
+ <enum name="GL_RIGHT"/>
+ </group>
+
+ <group name="RenderingMode">
+ <enum name="GL_FEEDBACK"/>
+ <enum name="GL_RENDER"/>
+ <enum name="GL_SELECT"/>
+ </group>
+
+ <group name="SamplePatternSGIS">
+ <enum name="GL_1PASS_EXT"/>
+ <enum name="GL_1PASS_SGIS"/>
+ <enum name="GL_2PASS_0_EXT"/>
+ <enum name="GL_2PASS_0_SGIS"/>
+ <enum name="GL_2PASS_1_EXT"/>
+ <enum name="GL_2PASS_1_SGIS"/>
+ <enum name="GL_4PASS_0_EXT"/>
+ <enum name="GL_4PASS_0_SGIS"/>
+ <enum name="GL_4PASS_1_EXT"/>
+ <enum name="GL_4PASS_1_SGIS"/>
+ <enum name="GL_4PASS_2_EXT"/>
+ <enum name="GL_4PASS_2_SGIS"/>
+ <enum name="GL_4PASS_3_EXT"/>
+ <enum name="GL_4PASS_3_SGIS"/>
+ </group>
+
+ <group name="SeparableTargetEXT">
+ <enum name="GL_SEPARABLE_2D"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ </group>
+
+ <group name="ShadingModel">
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ </group>
+
+ <group name="StencilFunction">
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_NOTEQUAL"/>
+ </group>
+
+ <group name="StencilOp">
+ <enum name="GL_DECR"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_ZERO"/>
+ </group>
+
+ <group name="StringName">
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_VERSION"/>
+ </group>
+
+ <group name="TexCoordPointerType">
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+
+ <group name="TextureCoordName">
+ <enum name="GL_S"/>
+ <enum name="GL_T"/>
+ <enum name="GL_R"/>
+ <enum name="GL_Q"/>
+ </group>
+
+ <group name="TextureEnvMode">
+ <enum name="GL_ADD"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_REPLACE_EXT"/>
+ <enum name="GL_TEXTURE_ENV_BIAS_SGIX"/>
+ </group>
+
+ <group name="TextureEnvParameter">
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ </group>
+
+ <group name="TextureEnvTarget">
+ <enum name="GL_TEXTURE_ENV"/>
+ </group>
+
+ <group name="TextureFilterFuncSGIS">
+ <enum name="GL_FILTER4_SGIS"/>
+ </group>
+
+ <group name="TextureGenMode">
+ <enum name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_EYE_LINEAR"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_OBJECT_LINEAR"/>
+ <enum name="GL_SPHERE_MAP"/>
+ </group>
+
+ <group name="TextureGenParameter">
+ <enum name="GL_EYE_LINE_SGIS"/>
+ <enum name="GL_EYE_PLANE"/>
+ <enum name="GL_EYE_POINT_SGIS"/>
+ <enum name="GL_OBJECT_LINE_SGIS"/>
+ <enum name="GL_OBJECT_PLANE"/>
+ <enum name="GL_OBJECT_POINT_SGIS"/>
+ <enum name="GL_TEXTURE_GEN_MODE"/>
+ </group>
+
+ <group name="TextureMagFilter">
+ <enum name="GL_FILTER4_SGIS"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_SGIS"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+ </group>
+
+ <group name="TextureMinFilter">
+ <enum name="GL_FILTER4_SGIS"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+ </group>
+
+ <group name="TextureParameterName">
+ <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_SHADOW_AMBIENT_SGIX"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_PRIORITY_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum name="GL_TEXTURE_WRAP_R"/>
+ <enum name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_R_OES"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ </group>
+
+ <group name="TextureTarget">
+ <enum name="GL_DETAIL_TEXTURE_2D_SGIS"/>
+ <enum name="GL_PROXY_TEXTURE_1D"/>
+ <enum name="GL_PROXY_TEXTURE_1D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_2D"/>
+ <enum name="GL_PROXY_TEXTURE_2D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_3D"/>
+ <enum name="GL_PROXY_TEXTURE_3D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_3D_OES"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LOD"/>
+ <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_MIN_LOD"/>
+ <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ </group>
+
+ <group name="TextureWrapMode">
+ <enum name="GL_CLAMP"/>
+ <enum name="GL_CLAMP_TO_BORDER"/>
+ <enum name="GL_CLAMP_TO_BORDER_ARB"/>
+ <enum name="GL_CLAMP_TO_BORDER_NV"/>
+ <enum name="GL_CLAMP_TO_BORDER_SGIS"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_CLAMP_TO_EDGE_SGIS"/>
+ <enum name="GL_REPEAT"/>
+ </group>
+
+ <group name="UseProgramStageMask">
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_VERTEX_SHADER_BIT_EXT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT_EXT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT_EXT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT_EXT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT_EXT"/>
+ <enum name="GL_COMPUTE_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_ALL_SHADER_BITS_EXT"/>
+ </group>
+
+ <group name="VertexPointerType">
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+ </groups>
+
+ <!-- SECTION: GL enumerant (token) definitions. -->
+
+ <!-- Bitmasks each have their own namespace, although bits are
+ sometimes reused for other purposes -->
+
+ <enums namespace="GL" group="AttribMask" type="bitmask">
+ <enum value="0x00000001" name="GL_CURRENT_BIT"/>
+ <enum value="0x00000002" name="GL_POINT_BIT"/>
+ <enum value="0x00000004" name="GL_LINE_BIT"/>
+ <enum value="0x00000008" name="GL_POLYGON_BIT"/>
+ <enum value="0x00000010" name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum value="0x00000020" name="GL_PIXEL_MODE_BIT"/>
+ <enum value="0x00000040" name="GL_LIGHTING_BIT"/>
+ <enum value="0x00000080" name="GL_FOG_BIT"/>
+ <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT"/>
+ <enum value="0x00000200" name="GL_ACCUM_BUFFER_BIT"/>
+ <enum value="0x00000400" name="GL_STENCIL_BUFFER_BIT"/>
+ <enum value="0x00000800" name="GL_VIEWPORT_BIT"/>
+ <enum value="0x00001000" name="GL_TRANSFORM_BIT"/>
+ <enum value="0x00002000" name="GL_ENABLE_BIT"/>
+ <enum value="0x00004000" name="GL_COLOR_BUFFER_BIT"/>
+ <enum value="0x00008000" name="GL_HINT_BIT"/>
+ <enum value="0x00010000" name="GL_EVAL_BIT"/>
+ <enum value="0x00020000" name="GL_LIST_BIT"/>
+ <enum value="0x00040000" name="GL_TEXTURE_BIT"/>
+ <enum value="0x00080000" name="GL_SCISSOR_BIT"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_ARB"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_EXT"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_3DFX"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_ATTRIB_BITS" comment="Guaranteed to mark all attribute groups at once"/>
+ </enums>
+
+ <enums namespace="GL" group="ClearBufferMask" type="bitmask" comment="GL_{DEPTH,ACCUM,STENCIL,COLOR}_BUFFER_BIT also lie in this namespace">
+ <enum value="0x00008000" name="GL_COVERAGE_BUFFER_BIT_NV" comment="Collides with AttribMask bit GL_HINT_BIT. OK since this token is for OpenGL ES 2, which doesn't have attribute groups."/>
+ <!-- Also used: 0x00004700 for bits reused from AttribMask above -->
+ </enums>
+
+ <enums namespace="GL" group="ClientAttribMask" type="bitmask">
+ <enum value="0x00000001" name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum value="0x00000002" name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ <enum value="0xFFFFFFFF" name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ </enums>
+
+ <enums namespace="GL" group="ContextFlagMask" type="bitmask" comment="Should be shared with WGL/GLX, but aren't since the FORWARD_COMPATIBLE and DEBUG values are swapped vs. WGL/GLX.">
+ <enum value="0x00000001" name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
+ <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
+ <enum value="0x00000004" name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
+ <enum value="0x00000004" name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT"/>
+ </enums>
+
+ <enums namespace="GL" group="ContextProfileMask" type="bitmask">
+ <enum value="0x00000001" name="GL_CONTEXT_CORE_PROFILE_BIT"/>
+ <enum value="0x00000002" name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+ </enums>
+
+ <enums namespace="GL" group="MapBufferUsageMask" type="bitmask">
+ <enum value="0x0001" name="GL_MAP_READ_BIT"/>
+ <enum value="0x0001" name="GL_MAP_READ_BIT_EXT"/>
+ <enum value="0x0002" name="GL_MAP_WRITE_BIT"/>
+ <enum value="0x0002" name="GL_MAP_WRITE_BIT_EXT"/>
+ <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
+ <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
+ <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
+ <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
+ <enum value="0x0040" name="GL_MAP_PERSISTENT_BIT"/>
+ <enum value="0x0080" name="GL_MAP_COHERENT_BIT"/>
+ <enum value="0x0100" name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum value="0x0200" name="GL_CLIENT_STORAGE_BIT"/>
+ <enum value="0x0400" name="GL_SPARSE_STORAGE_BIT_ARB"/>
+ </enums>
+
+ <enums namespace="GL" group="MemoryBarrierMask" type="bitmask">
+ <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
+ <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
+ <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT_EXT"/>
+ <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
+ <enum value="0x00000010" name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
+ <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
+ <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT"/>
+ <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT_EXT"/>
+ <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
+ <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
+ <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
+ <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
+ <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
+ <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
+ <enum value="0x00002000" name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum value="0x00004000" name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT"/>
+ <enum value="0x00008000" name="GL_QUERY_BUFFER_BARRIER_BIT"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS_EXT"/>
+ </enums>
+
+ <enums namespace="OcclusionQueryEventMaskAMD">
+ <enum value="0x00000001" name="GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD"/>
+ <enum value="0x00000002" name="GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD"/>
+ <enum value="0x00000004" name="GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD"/>
+ <enum value="0x00000008" name="GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD"/>
+ <enum value="0xFFFFFFFF" name="GL_QUERY_ALL_EVENT_BITS_AMD"/>
+ </enums>
+
+ <enums namespace="GL" group="SyncObjectMask" type="bitmask">
+ <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT_APPLE"/>
+ </enums>
+
+ <enums namespace="GL" group="UseProgramStageMask" type="bitmask">
+ <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT"/>
+ <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT_EXT"/>
+ <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT_EXT"/>
+ <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT_EXT"/>
+ <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT_EXT"/>
+ <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT_EXT"/>
+ <enum value="0x00000020" name="GL_COMPUTE_SHADER_BIT"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS_EXT"/>
+ </enums>
+
+ <!-- Bitmasks defined by vendor extensions -->
+
+ <enums namespace="GL" group="TextureStorageMaskAMD" type="bitmask">
+ <enum value="0x00000001" name="GL_TEXTURE_STORAGE_SPARSE_BIT_AMD"/>
+ </enums>
+
+ <enums namespace="GL" group="FragmentShaderDestMaskATI" type="bitmask">
+ <enum value="0x00000001" name="GL_RED_BIT_ATI"/>
+ <enum value="0x00000002" name="GL_GREEN_BIT_ATI"/>
+ <enum value="0x00000004" name="GL_BLUE_BIT_ATI"/>
+ </enums>
+
+ <enums namespace="GL" group="FragmentShaderDestModMaskATI" type="bitmask">
+ <enum value="0x00000001" name="GL_2X_BIT_ATI"/>
+ <enum value="0x00000002" name="GL_4X_BIT_ATI"/>
+ <enum value="0x00000004" name="GL_8X_BIT_ATI"/>
+ <enum value="0x00000008" name="GL_HALF_BIT_ATI"/>
+ <enum value="0x00000010" name="GL_QUARTER_BIT_ATI"/>
+ <enum value="0x00000020" name="GL_EIGHTH_BIT_ATI"/>
+ <enum value="0x00000040" name="GL_SATURATE_BIT_ATI"/>
+ </enums>
+
+ <enums namespace="GL" group="FragmentShaderColorModMaskATI" type="bitmask">
+ <!-- Also used: 0x00000001 for GL_2X_BIT_ATI reused from FragmentShaderDestModMaskAT above -->
+ <enum value="0x00000002" name="GL_COMP_BIT_ATI"/>
+ <enum value="0x00000004" name="GL_NEGATE_BIT_ATI"/>
+ <enum value="0x00000008" name="GL_BIAS_BIT_ATI"/>
+ </enums>
+
+ <enums namespace="GL" group="TraceMaskMESA" type="bitmask">
+ <enum value="0x0001" name="GL_TRACE_OPERATIONS_BIT_MESA"/>
+ <enum value="0x0002" name="GL_TRACE_PRIMITIVES_BIT_MESA"/>
+ <enum value="0x0004" name="GL_TRACE_ARRAYS_BIT_MESA"/>
+ <enum value="0x0008" name="GL_TRACE_TEXTURES_BIT_MESA"/>
+ <enum value="0x0010" name="GL_TRACE_PIXELS_BIT_MESA"/>
+ <enum value="0x0020" name="GL_TRACE_ERRORS_BIT_MESA"/>
+ <enum value="0xFFFF" name="GL_TRACE_ALL_BITS_MESA"/>
+ </enums>
+
+ <enums namespace="GL" group="PathRenderingMaskNV" type="bitmask">
+ <enum value="0x01" name="GL_BOLD_BIT_NV"/>
+ <enum value="0x02" name="GL_ITALIC_BIT_NV"/>
+ <enum value="0x01" name="GL_GLYPH_WIDTH_BIT_NV"/>
+ <enum value="0x02" name="GL_GLYPH_HEIGHT_BIT_NV"/>
+ <enum value="0x04" name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV"/>
+ <enum value="0x08" name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV"/>
+ <enum value="0x10" name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum value="0x20" name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV"/>
+ <enum value="0x40" name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV"/>
+ <enum value="0x80" name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum value="0x100" name="GL_GLYPH_HAS_KERNING_BIT_NV"/>
+ <enum value="0x00010000" name="GL_FONT_X_MIN_BOUNDS_BIT_NV"/>
+ <enum value="0x00020000" name="GL_FONT_Y_MIN_BOUNDS_BIT_NV"/>
+ <enum value="0x00040000" name="GL_FONT_X_MAX_BOUNDS_BIT_NV"/>
+ <enum value="0x00080000" name="GL_FONT_Y_MAX_BOUNDS_BIT_NV"/>
+ <enum value="0x00100000" name="GL_FONT_UNITS_PER_EM_BIT_NV"/>
+ <enum value="0x00200000" name="GL_FONT_ASCENDER_BIT_NV"/>
+ <enum value="0x00400000" name="GL_FONT_DESCENDER_BIT_NV"/>
+ <enum value="0x00800000" name="GL_FONT_HEIGHT_BIT_NV"/>
+ <enum value="0x01000000" name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV"/>
+ <enum value="0x02000000" name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV"/>
+ <enum value="0x04000000" name="GL_FONT_UNDERLINE_POSITION_BIT_NV"/>
+ <enum value="0x08000000" name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV"/>
+ <enum value="0x10000000" name="GL_FONT_HAS_KERNING_BIT_NV"/>
+ <enum value="0x20000000" name="GL_FONT_NUM_GLYPH_INDICES_BIT_NV"/>
+ </enums>
+
+ <enums namespace="GL" group="PerformanceQueryCapsMaskINTEL" type="bitmask">
+ <enum value="0x00000000" name="GL_PERFQUERY_SINGLE_CONTEXT_INTEL"/>
+ <enum value="0x00000001" name="GL_PERFQUERY_GLOBAL_CONTEXT_INTEL"/>
+ </enums>
+
+ <enums namespace="GL" group="VertexHintsMaskPGI" type="bitmask">
+ <enum value="0x00000004" name="GL_VERTEX23_BIT_PGI"/>
+ <enum value="0x00000008" name="GL_VERTEX4_BIT_PGI"/>
+ <enum value="0x00010000" name="GL_COLOR3_BIT_PGI"/>
+ <enum value="0x00020000" name="GL_COLOR4_BIT_PGI"/>
+ <enum value="0x00040000" name="GL_EDGEFLAG_BIT_PGI"/>
+ <enum value="0x00080000" name="GL_INDEX_BIT_PGI"/>
+ <enum value="0x00100000" name="GL_MAT_AMBIENT_BIT_PGI"/>
+ <enum value="0x00200000" name="GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI"/>
+ <enum value="0x00400000" name="GL_MAT_DIFFUSE_BIT_PGI"/>
+ <enum value="0x00800000" name="GL_MAT_EMISSION_BIT_PGI"/>
+ <enum value="0x01000000" name="GL_MAT_COLOR_INDEXES_BIT_PGI"/>
+ <enum value="0x02000000" name="GL_MAT_SHININESS_BIT_PGI"/>
+ <enum value="0x04000000" name="GL_MAT_SPECULAR_BIT_PGI"/>
+ <enum value="0x08000000" name="GL_NORMAL_BIT_PGI"/>
+ <enum value="0x10000000" name="GL_TEXCOORD1_BIT_PGI"/>
+ <enum value="0x20000000" name="GL_TEXCOORD2_BIT_PGI"/>
+ <enum value="0x40000000" name="GL_TEXCOORD3_BIT_PGI"/>
+ <enum value="0x80000000" name="GL_TEXCOORD4_BIT_PGI"/>
+ </enums>
+
+ <enums namespace="GL" group="BufferBitQCOM" type="bitmask">
+ <enum value="0x00000001" name="GL_COLOR_BUFFER_BIT0_QCOM"/>
+ <enum value="0x00000002" name="GL_COLOR_BUFFER_BIT1_QCOM"/>
+ <enum value="0x00000004" name="GL_COLOR_BUFFER_BIT2_QCOM"/>
+ <enum value="0x00000008" name="GL_COLOR_BUFFER_BIT3_QCOM"/>
+ <enum value="0x00000010" name="GL_COLOR_BUFFER_BIT4_QCOM"/>
+ <enum value="0x00000020" name="GL_COLOR_BUFFER_BIT5_QCOM"/>
+ <enum value="0x00000040" name="GL_COLOR_BUFFER_BIT6_QCOM"/>
+ <enum value="0x00000080" name="GL_COLOR_BUFFER_BIT7_QCOM"/>
+ <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT0_QCOM"/>
+ <enum value="0x00000200" name="GL_DEPTH_BUFFER_BIT1_QCOM"/>
+ <enum value="0x00000400" name="GL_DEPTH_BUFFER_BIT2_QCOM"/>
+ <enum value="0x00000800" name="GL_DEPTH_BUFFER_BIT3_QCOM"/>
+ <enum value="0x00001000" name="GL_DEPTH_BUFFER_BIT4_QCOM"/>
+ <enum value="0x00002000" name="GL_DEPTH_BUFFER_BIT5_QCOM"/>
+ <enum value="0x00004000" name="GL_DEPTH_BUFFER_BIT6_QCOM"/>
+ <enum value="0x00008000" name="GL_DEPTH_BUFFER_BIT7_QCOM"/>
+ <enum value="0x00010000" name="GL_STENCIL_BUFFER_BIT0_QCOM"/>
+ <enum value="0x00020000" name="GL_STENCIL_BUFFER_BIT1_QCOM"/>
+ <enum value="0x00040000" name="GL_STENCIL_BUFFER_BIT2_QCOM"/>
+ <enum value="0x00080000" name="GL_STENCIL_BUFFER_BIT3_QCOM"/>
+ <enum value="0x00100000" name="GL_STENCIL_BUFFER_BIT4_QCOM"/>
+ <enum value="0x00200000" name="GL_STENCIL_BUFFER_BIT5_QCOM"/>
+ <enum value="0x00400000" name="GL_STENCIL_BUFFER_BIT6_QCOM"/>
+ <enum value="0x00800000" name="GL_STENCIL_BUFFER_BIT7_QCOM"/>
+ <enum value="0x01000000" name="GL_MULTISAMPLE_BUFFER_BIT0_QCOM"/>
+ <enum value="0x02000000" name="GL_MULTISAMPLE_BUFFER_BIT1_QCOM"/>
+ <enum value="0x04000000" name="GL_MULTISAMPLE_BUFFER_BIT2_QCOM"/>
+ <enum value="0x08000000" name="GL_MULTISAMPLE_BUFFER_BIT3_QCOM"/>
+ <enum value="0x10000000" name="GL_MULTISAMPLE_BUFFER_BIT4_QCOM"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM"/>
+ <enum value="0x40000000" name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM"/>
+ <enum value="0x80000000" name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM"/>
+ </enums>
+
+ <enums namespace="GL" group="FfdMaskSGIX" type="bitmask">
+ <enum value="0x00000001" name="GL_TEXTURE_DEFORMATION_BIT_SGIX"/>
+ <enum value="0x00000002" name="GL_GEOMETRY_DEFORMATION_BIT_SGIX"/>
+ </enums>
+
+ <!-- Non-bitmask enums with their own namespace. Generally small numbers
+ used for indexed access. -->
+
+ <enums namespace="GL" group="TriangleListSUN" vendor="SUN">
+ <enum value="0x0001" name="GL_RESTART_SUN"/>
+ <enum value="0x0002" name="GL_REPLACE_MIDDLE_SUN"/>
+ <enum value="0x0003" name="GL_REPLACE_OLDEST_SUN"/>
+ </enums>
+
+ <enums namespace="GL" group="MapTextureFormatINTEL" vendor="INTEL" comment="Texture memory layouts for INTEL_map_texture">
+ <enum value="0" name="GL_LAYOUT_DEFAULT_INTEL"/>
+ <enum value="1" name="GL_LAYOUT_LINEAR_INTEL"/>
+ <enum value="2" name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+ </enums>
+
+ <enums namespace="GL" group="TransformFeedbackTokenNV" vendor="NV" comment="For NV_transform_feedback. No clue why small negative values are used">
+ <enum value="-2" name="GL_NEXT_BUFFER_NV"/>
+ <enum value="-3" name="GL_SKIP_COMPONENTS4_NV"/>
+ <enum value="-4" name="GL_SKIP_COMPONENTS3_NV"/>
+ <enum value="-5" name="GL_SKIP_COMPONENTS2_NV"/>
+ <enum value="-6" name="GL_SKIP_COMPONENTS1_NV"/>
+ </enums>
+
+ <enums namespace="GL" group="PathRenderingTokenNV" vendor="NV">
+ <enum value="0x00" name="GL_CLOSE_PATH_NV"/>
+ <enum value="0x02" name="GL_MOVE_TO_NV"/>
+ <enum value="0x03" name="GL_RELATIVE_MOVE_TO_NV"/>
+ <enum value="0x04" name="GL_LINE_TO_NV"/>
+ <enum value="0x05" name="GL_RELATIVE_LINE_TO_NV"/>
+ <enum value="0x06" name="GL_HORIZONTAL_LINE_TO_NV"/>
+ <enum value="0x07" name="GL_RELATIVE_HORIZONTAL_LINE_TO_NV"/>
+ <enum value="0x08" name="GL_VERTICAL_LINE_TO_NV"/>
+ <enum value="0x09" name="GL_RELATIVE_VERTICAL_LINE_TO_NV"/>
+ <enum value="0x0A" name="GL_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x0B" name="GL_RELATIVE_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x0C" name="GL_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x0D" name="GL_RELATIVE_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x0E" name="GL_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x0F" name="GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x10" name="GL_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x11" name="GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x12" name="GL_SMALL_CCW_ARC_TO_NV"/>
+ <enum value="0x13" name="GL_RELATIVE_SMALL_CCW_ARC_TO_NV"/>
+ <enum value="0x14" name="GL_SMALL_CW_ARC_TO_NV"/>
+ <enum value="0x15" name="GL_RELATIVE_SMALL_CW_ARC_TO_NV"/>
+ <enum value="0x16" name="GL_LARGE_CCW_ARC_TO_NV"/>
+ <enum value="0x17" name="GL_RELATIVE_LARGE_CCW_ARC_TO_NV"/>
+ <enum value="0x18" name="GL_LARGE_CW_ARC_TO_NV"/>
+ <enum value="0x19" name="GL_RELATIVE_LARGE_CW_ARC_TO_NV"/>
+ <enum value="0x1A" name="GL_CONIC_CURVE_TO_NV"/>
+ <enum value="0x1B" name="GL_RELATIVE_CONIC_CURVE_TO_NV"/>
+ <unused start="0x1C" end="0xE7" comment="Unused for PathRenderingTokenNV"/>
+ <enum value="0xE8" name="GL_ROUNDED_RECT_NV"/>
+ <enum value="0xE9" name="GL_RELATIVE_ROUNDED_RECT_NV"/>
+ <enum value="0xEA" name="GL_ROUNDED_RECT2_NV"/>
+ <enum value="0xEB" name="GL_RELATIVE_ROUNDED_RECT2_NV"/>
+ <enum value="0xEC" name="GL_ROUNDED_RECT4_NV"/>
+ <enum value="0xED" name="GL_RELATIVE_ROUNDED_RECT4_NV"/>
+ <enum value="0xEE" name="GL_ROUNDED_RECT8_NV"/>
+ <enum value="0xEF" name="GL_RELATIVE_ROUNDED_RECT8_NV"/>
+ <enum value="0xF0" name="GL_RESTART_PATH_NV"/>
+ <enum value="0xF2" name="GL_DUP_FIRST_CUBIC_CURVE_TO_NV"/>
+ <enum value="0xF4" name="GL_DUP_LAST_CUBIC_CURVE_TO_NV"/>
+ <enum value="0xF6" name="GL_RECT_NV"/>
+ <enum value="0xF7" name="GL_RELATIVE_RECT_NV"/>
+ <enum value="0xF8" name="GL_CIRCULAR_CCW_ARC_TO_NV"/>
+ <enum value="0xFA" name="GL_CIRCULAR_CW_ARC_TO_NV"/>
+ <enum value="0xFC" name="GL_CIRCULAR_TANGENT_ARC_TO_NV"/>
+ <enum value="0xFE" name="GL_ARC_TO_NV"/>
+ <enum value="0xFF" name="GL_RELATIVE_ARC_TO_NV"/>
+ </enums>
+
+ <!-- The default ("API") enum namespace starts here. While some
+ assigned values may overlap, and different parts of the
+ namespace are reserved for different purposes, it is a single
+ namespace. The "class" attribute indicates some of the reserved
+ purposes but is by no means complete (and cannot be, since many
+ tokens are reused for different purposes in different
+ extensions and API versions). -->
+
+ <enums namespace="GL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
+ <enum value="0" name="GL_FALSE"/>
+ <enum value="0" name="GL_NO_ERROR"/>
+ <enum value="0" name="GL_ZERO"/>
+ <enum value="0" name="GL_NONE"/>
+ <enum value="0" name="GL_NONE_OES"/>
+ <enum value="1" name="GL_TRUE"/>
+ <enum value="1" name="GL_ONE"/>
+ <enum value="0xFFFFFFFF" name="GL_INVALID_INDEX" type="u" comment="Tagged as uint"/>
+ <enum value="0xFFFFFFFFFFFFFFFF" name="GL_TIMEOUT_IGNORED" type="ull" comment="Tagged as uint64"/>
+ <enum value="0xFFFFFFFFFFFFFFFF" name="GL_TIMEOUT_IGNORED_APPLE" type="ull" comment="Tagged as uint64"/>
+ <enum value="1" name="GL_VERSION_ES_CL_1_0" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+ <enum value="1" name="GL_VERSION_ES_CM_1_1" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+ <enum value="1" name="GL_VERSION_ES_CL_1_1" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+ </enums>
+
+ <enums namespace="GL" start="0x0000" end="0x7FFF" vendor="ARB" comment="Mostly OpenGL 1.0/1.1 enum assignments. Unused ranges should generally remain unused.">
+ <enum value="0x0000" name="GL_POINTS"/>
+ <enum value="0x0001" name="GL_LINES"/>
+ <enum value="0x0002" name="GL_LINE_LOOP"/>
+ <enum value="0x0003" name="GL_LINE_STRIP"/>
+ <enum value="0x0004" name="GL_TRIANGLES"/>
+ <enum value="0x0005" name="GL_TRIANGLE_STRIP"/>
+ <enum value="0x0006" name="GL_TRIANGLE_FAN"/>
+ <enum value="0x0007" name="GL_QUADS"/>
+ <enum value="0x0007" name="GL_QUADS_EXT"/>
+ <enum value="0x0008" name="GL_QUAD_STRIP"/>
+ <enum value="0x0009" name="GL_POLYGON"/>
+ <enum value="0x000A" name="GL_LINES_ADJACENCY"/>
+ <enum value="0x000A" name="GL_LINES_ADJACENCY_ARB"/>
+ <enum value="0x000A" name="GL_LINES_ADJACENCY_EXT"/>
+ <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY"/>
+ <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_ARB"/>
+ <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY"/>
+ <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_ARB"/>
+ <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY"/>
+ <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
+ <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum value="0x000E" name="GL_PATCHES"/>
+ <enum value="0x000E" name="GL_PATCHES_EXT"/>
+ <unused start="0x000F" end="0x00FF" comment="Unused for PrimitiveType"/>
+ <enum value="0x0100" name="GL_ACCUM"/>
+ <enum value="0x0101" name="GL_LOAD"/>
+ <enum value="0x0102" name="GL_RETURN"/>
+ <enum value="0x0103" name="GL_MULT"/>
+ <enum value="0x0104" name="GL_ADD"/>
+ <unused start="0x0105" end="0x01FF" comment="Unused for AccumOp"/>
+ <enum value="0x0200" name="GL_NEVER"/>
+ <enum value="0x0201" name="GL_LESS"/>
+ <enum value="0x0202" name="GL_EQUAL"/>
+ <enum value="0x0203" name="GL_LEQUAL"/>
+ <enum value="0x0204" name="GL_GREATER"/>
+ <enum value="0x0205" name="GL_NOTEQUAL"/>
+ <enum value="0x0206" name="GL_GEQUAL"/>
+ <enum value="0x0207" name="GL_ALWAYS"/>
+ <unused start="0x0208" end="0x02FF" comment="Unused for AlphaFunction"/>
+ <enum value="0x0300" name="GL_SRC_COLOR"/>
+ <enum value="0x0301" name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum value="0x0302" name="GL_SRC_ALPHA"/>
+ <enum value="0x0303" name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum value="0x0304" name="GL_DST_ALPHA"/>
+ <enum value="0x0305" name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum value="0x0306" name="GL_DST_COLOR"/>
+ <enum value="0x0307" name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum value="0x0308" name="GL_SRC_ALPHA_SATURATE"/>
+ <unused start="0x0309" end="0x03FF" comment="Unused for BlendingFactor"/>
+ <enum value="0x0400" name="GL_FRONT_LEFT"/>
+ <enum value="0x0401" name="GL_FRONT_RIGHT"/>
+ <enum value="0x0402" name="GL_BACK_LEFT"/>
+ <enum value="0x0403" name="GL_BACK_RIGHT"/>
+ <enum value="0x0404" name="GL_FRONT"/>
+ <enum value="0x0405" name="GL_BACK"/>
+ <enum value="0x0406" name="GL_LEFT"/>
+ <enum value="0x0407" name="GL_RIGHT"/>
+ <enum value="0x0408" name="GL_FRONT_AND_BACK"/>
+ <enum value="0x0409" name="GL_AUX0"/>
+ <enum value="0x040A" name="GL_AUX1"/>
+ <enum value="0x040B" name="GL_AUX2"/>
+ <enum value="0x040C" name="GL_AUX3"/>
+ <unused start="0x040D" end="0x04FF" comment="Unused for DrawBufferMode"/>
+ <enum value="0x0500" name="GL_INVALID_ENUM"/>
+ <enum value="0x0501" name="GL_INVALID_VALUE"/>
+ <enum value="0x0502" name="GL_INVALID_OPERATION"/>
+ <enum value="0x0503" name="GL_STACK_OVERFLOW"/>
+ <enum value="0x0503" name="GL_STACK_OVERFLOW_KHR"/>
+ <enum value="0x0504" name="GL_STACK_UNDERFLOW"/>
+ <enum value="0x0504" name="GL_STACK_UNDERFLOW_KHR"/>
+ <enum value="0x0505" name="GL_OUT_OF_MEMORY"/>
+ <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
+ <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+ <enum value="0x0507" name="GL_CONTEXT_LOST"/>
+ <enum value="0x0507" name="GL_CONTEXT_LOST_KHR"/>
+ <unused start="0x0508" end="0x05FF" comment="Unused for ErrorCode"/>
+ <enum value="0x0600" name="GL_2D"/>
+ <enum value="0x0601" name="GL_3D"/>
+ <enum value="0x0602" name="GL_3D_COLOR"/>
+ <enum value="0x0603" name="GL_3D_COLOR_TEXTURE"/>
+ <enum value="0x0604" name="GL_4D_COLOR_TEXTURE"/>
+ <unused start="0x0605" end="0x06FF" comment="Unused for FeedbackType"/>
+ <enum value="0x0700" name="GL_PASS_THROUGH_TOKEN"/>
+ <enum value="0x0701" name="GL_POINT_TOKEN"/>
+ <enum value="0x0702" name="GL_LINE_TOKEN"/>
+ <enum value="0x0703" name="GL_POLYGON_TOKEN"/>
+ <enum value="0x0704" name="GL_BITMAP_TOKEN"/>
+ <enum value="0x0705" name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum value="0x0706" name="GL_COPY_PIXEL_TOKEN"/>
+ <enum value="0x0707" name="GL_LINE_RESET_TOKEN"/>
+ <unused start="0x0708" end="0x07FF" comment="Unused for FeedbackToken"/>
+ <enum value="0x0800" name="GL_EXP"/>
+ <enum value="0x0801" name="GL_EXP2"/>
+ <unused start="0x0802" end="0x08FF" comment="Unused for FogMode"/>
+ <enum value="0x0900" name="GL_CW"/>
+ <enum value="0x0901" name="GL_CCW"/>
+ <unused start="0x0902" end="0x09FF" comment="Unused for FrontFaceDirection"/>
+ <enum value="0x0A00" name="GL_COEFF"/>
+ <enum value="0x0A01" name="GL_ORDER"/>
+ <enum value="0x0A02" name="GL_DOMAIN"/>
+ <unused start="0x0A03" end="0x0AFF" comment="Unused for GetMapQuery"/>
+ <enum value="0x0B00" name="GL_CURRENT_COLOR"/>
+ <enum value="0x0B01" name="GL_CURRENT_INDEX"/>
+ <enum value="0x0B02" name="GL_CURRENT_NORMAL"/>
+ <enum value="0x0B03" name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum value="0x0B04" name="GL_CURRENT_RASTER_COLOR"/>
+ <enum value="0x0B05" name="GL_CURRENT_RASTER_INDEX"/>
+ <enum value="0x0B06" name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum value="0x0B07" name="GL_CURRENT_RASTER_POSITION"/>
+ <enum value="0x0B08" name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum value="0x0B09" name="GL_CURRENT_RASTER_DISTANCE"/>
+
+ <enum value="0x0B10" name="GL_POINT_SMOOTH"/>
+ <enum value="0x0B11" name="GL_POINT_SIZE"/>
+ <enum value="0x0B12" name="GL_POINT_SIZE_RANGE"/>
+ <enum value="0x0B12" name="GL_SMOOTH_POINT_SIZE_RANGE" alias="GL_POINT_SIZE_RANGE"/>
+ <enum value="0x0B13" name="GL_POINT_SIZE_GRANULARITY"/>
+ <enum value="0x0B13" name="GL_SMOOTH_POINT_SIZE_GRANULARITY" alias="GL_POINT_SIZE_GRANULARITY"/>
+
+ <enum value="0x0B20" name="GL_LINE_SMOOTH"/>
+ <enum value="0x0B21" name="GL_LINE_WIDTH"/>
+ <enum value="0x0B22" name="GL_LINE_WIDTH_RANGE"/>
+ <enum value="0x0B22" name="GL_SMOOTH_LINE_WIDTH_RANGE" alias="GL_LINE_WIDTH_RANGE"/>
+ <enum value="0x0B23" name="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum value="0x0B23" name="GL_SMOOTH_LINE_WIDTH_GRANULARITY" alias="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum value="0x0B24" name="GL_LINE_STIPPLE"/>
+ <enum value="0x0B25" name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum value="0x0B26" name="GL_LINE_STIPPLE_REPEAT"/>
+
+ <enum value="0x0B30" name="GL_LIST_MODE"/>
+ <enum value="0x0B31" name="GL_MAX_LIST_NESTING"/>
+ <enum value="0x0B32" name="GL_LIST_BASE"/>
+ <enum value="0x0B33" name="GL_LIST_INDEX"/>
+
+ <enum value="0x0B40" name="GL_POLYGON_MODE"/>
+ <enum value="0x0B41" name="GL_POLYGON_SMOOTH"/>
+ <enum value="0x0B42" name="GL_POLYGON_STIPPLE"/>
+ <enum value="0x0B43" name="GL_EDGE_FLAG"/>
+ <enum value="0x0B44" name="GL_CULL_FACE"/>
+ <enum value="0x0B45" name="GL_CULL_FACE_MODE"/>
+ <enum value="0x0B46" name="GL_FRONT_FACE"/>
+
+ <enum value="0x0B50" name="GL_LIGHTING"/>
+ <enum value="0x0B51" name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum value="0x0B52" name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum value="0x0B53" name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum value="0x0B54" name="GL_SHADE_MODEL"/>
+ <enum value="0x0B55" name="GL_COLOR_MATERIAL_FACE"/>
+ <enum value="0x0B56" name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum value="0x0B57" name="GL_COLOR_MATERIAL"/>
+
+ <enum value="0x0B60" name="GL_FOG"/>
+ <enum value="0x0B61" name="GL_FOG_INDEX"/>
+ <enum value="0x0B62" name="GL_FOG_DENSITY"/>
+ <enum value="0x0B63" name="GL_FOG_START"/>
+ <enum value="0x0B64" name="GL_FOG_END"/>
+ <enum value="0x0B65" name="GL_FOG_MODE"/>
+ <enum value="0x0B66" name="GL_FOG_COLOR"/>
+
+ <enum value="0x0B70" name="GL_DEPTH_RANGE"/>
+ <enum value="0x0B71" name="GL_DEPTH_TEST"/>
+ <enum value="0x0B72" name="GL_DEPTH_WRITEMASK"/>
+ <enum value="0x0B73" name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum value="0x0B74" name="GL_DEPTH_FUNC"/>
+
+ <enum value="0x0B80" name="GL_ACCUM_CLEAR_VALUE"/>
+
+ <enum value="0x0B90" name="GL_STENCIL_TEST"/>
+ <enum value="0x0B91" name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum value="0x0B92" name="GL_STENCIL_FUNC"/>
+ <enum value="0x0B93" name="GL_STENCIL_VALUE_MASK"/>
+ <enum value="0x0B94" name="GL_STENCIL_FAIL"/>
+ <enum value="0x0B95" name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum value="0x0B96" name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum value="0x0B97" name="GL_STENCIL_REF"/>
+ <enum value="0x0B98" name="GL_STENCIL_WRITEMASK"/>
+
+ <enum value="0x0BA0" name="GL_MATRIX_MODE"/>
+ <enum value="0x0BA1" name="GL_NORMALIZE"/>
+ <enum value="0x0BA2" name="GL_VIEWPORT"/>
+ <enum value="0x0BA3" name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum value="0x0BA3" name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+ <enum value="0x0BA3" name="GL_PATH_MODELVIEW_STACK_DEPTH_NV"/>
+ <enum value="0x0BA4" name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum value="0x0BA4" name="GL_PATH_PROJECTION_STACK_DEPTH_NV"/>
+ <enum value="0x0BA5" name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum value="0x0BA6" name="GL_MODELVIEW_MATRIX"/>
+ <enum value="0x0BA6" name="GL_MODELVIEW0_MATRIX_EXT"/>
+ <enum value="0x0BA6" name="GL_PATH_MODELVIEW_MATRIX_NV"/>
+ <enum value="0x0BA7" name="GL_PROJECTION_MATRIX"/>
+ <enum value="0x0BA7" name="GL_PATH_PROJECTION_MATRIX_NV"/>
+ <enum value="0x0BA8" name="GL_TEXTURE_MATRIX"/>
+
+ <enum value="0x0BB0" name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum value="0x0BB1" name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+
+ <enum value="0x0BC0" name="GL_ALPHA_TEST"/>
+ <enum value="0x0BC0" name="GL_ALPHA_TEST_QCOM"/>
+ <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC"/>
+ <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC_QCOM"/>
+ <enum value="0x0BC2" name="GL_ALPHA_TEST_REF"/>
+ <enum value="0x0BC2" name="GL_ALPHA_TEST_REF_QCOM"/>
+
+ <enum value="0x0BD0" name="GL_DITHER"/>
+
+ <enum value="0x0BE0" name="GL_BLEND_DST"/>
+ <enum value="0x0BE1" name="GL_BLEND_SRC"/>
+ <enum value="0x0BE2" name="GL_BLEND"/>
+
+ <enum value="0x0BF0" name="GL_LOGIC_OP_MODE"/>
+ <enum value="0x0BF1" name="GL_INDEX_LOGIC_OP"/>
+ <enum value="0x0BF1" name="GL_LOGIC_OP"/>
+ <enum value="0x0BF2" name="GL_COLOR_LOGIC_OP"/>
+
+ <enum value="0x0C00" name="GL_AUX_BUFFERS"/>
+ <enum value="0x0C01" name="GL_DRAW_BUFFER"/>
+ <enum value="0x0C01" name="GL_DRAW_BUFFER_EXT"/>
+ <enum value="0x0C02" name="GL_READ_BUFFER"/>
+ <enum value="0x0C02" name="GL_READ_BUFFER_EXT"/>
+ <enum value="0x0C02" name="GL_READ_BUFFER_NV"/>
+
+ <enum value="0x0C10" name="GL_SCISSOR_BOX"/>
+ <enum value="0x0C11" name="GL_SCISSOR_TEST"/>
+
+ <enum value="0x0C20" name="GL_INDEX_CLEAR_VALUE"/>
+ <enum value="0x0C21" name="GL_INDEX_WRITEMASK"/>
+ <enum value="0x0C22" name="GL_COLOR_CLEAR_VALUE"/>
+ <enum value="0x0C23" name="GL_COLOR_WRITEMASK"/>
+
+ <enum value="0x0C30" name="GL_INDEX_MODE"/>
+ <enum value="0x0C31" name="GL_RGBA_MODE"/>
+ <enum value="0x0C32" name="GL_DOUBLEBUFFER"/>
+ <enum value="0x0C33" name="GL_STEREO"/>
+
+ <enum value="0x0C40" name="GL_RENDER_MODE"/>
+
+ <enum value="0x0C50" name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum value="0x0C51" name="GL_POINT_SMOOTH_HINT"/>
+ <enum value="0x0C52" name="GL_LINE_SMOOTH_HINT"/>
+ <enum value="0x0C53" name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum value="0x0C54" name="GL_FOG_HINT"/>
+
+ <enum value="0x0C60" name="GL_TEXTURE_GEN_S"/>
+ <enum value="0x0C61" name="GL_TEXTURE_GEN_T"/>
+ <enum value="0x0C62" name="GL_TEXTURE_GEN_R"/>
+ <enum value="0x0C63" name="GL_TEXTURE_GEN_Q"/>
+
+ <enum value="0x0C70" name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum value="0x0C71" name="GL_PIXEL_MAP_S_TO_S"/>
+ <enum value="0x0C72" name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum value="0x0C73" name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum value="0x0C74" name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum value="0x0C75" name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum value="0x0C76" name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum value="0x0C77" name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum value="0x0C78" name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum value="0x0C79" name="GL_PIXEL_MAP_A_TO_A"/>
+
+ <enum value="0x0CB0" name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum value="0x0CB1" name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum value="0x0CB2" name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum value="0x0CB3" name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum value="0x0CB4" name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum value="0x0CB5" name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum value="0x0CB6" name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum value="0x0CB7" name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum value="0x0CB8" name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum value="0x0CB9" name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+
+ <enum value="0x0CF0" name="GL_UNPACK_SWAP_BYTES"/>
+ <enum value="0x0CF1" name="GL_UNPACK_LSB_FIRST"/>
+ <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH"/>
+ <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH_EXT"/>
+ <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS"/>
+ <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS_EXT"/>
+ <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS_EXT"/>
+ <enum value="0x0CF5" name="GL_UNPACK_ALIGNMENT"/>
+
+ <enum value="0x0D00" name="GL_PACK_SWAP_BYTES"/>
+ <enum value="0x0D01" name="GL_PACK_LSB_FIRST"/>
+ <enum value="0x0D02" name="GL_PACK_ROW_LENGTH"/>
+ <enum value="0x0D03" name="GL_PACK_SKIP_ROWS"/>
+ <enum value="0x0D04" name="GL_PACK_SKIP_PIXELS"/>
+ <enum value="0x0D05" name="GL_PACK_ALIGNMENT"/>
+
+ <enum value="0x0D10" name="GL_MAP_COLOR"/>
+ <enum value="0x0D11" name="GL_MAP_STENCIL"/>
+ <enum value="0x0D12" name="GL_INDEX_SHIFT"/>
+ <enum value="0x0D13" name="GL_INDEX_OFFSET"/>
+ <enum value="0x0D14" name="GL_RED_SCALE"/>
+ <enum value="0x0D15" name="GL_RED_BIAS"/>
+ <enum value="0x0D16" name="GL_ZOOM_X"/>
+ <enum value="0x0D17" name="GL_ZOOM_Y"/>
+ <enum value="0x0D18" name="GL_GREEN_SCALE"/>
+ <enum value="0x0D19" name="GL_GREEN_BIAS"/>
+ <enum value="0x0D1A" name="GL_BLUE_SCALE"/>
+ <enum value="0x0D1B" name="GL_BLUE_BIAS"/>
+ <enum value="0x0D1C" name="GL_ALPHA_SCALE"/>
+ <enum value="0x0D1D" name="GL_ALPHA_BIAS"/>
+ <enum value="0x0D1E" name="GL_DEPTH_SCALE"/>
+ <enum value="0x0D1F" name="GL_DEPTH_BIAS"/>
+
+ <enum value="0x0D30" name="GL_MAX_EVAL_ORDER"/>
+ <enum value="0x0D31" name="GL_MAX_LIGHTS"/>
+ <enum value="0x0D32" name="GL_MAX_CLIP_PLANES"/>
+ <enum value="0x0D32" name="GL_MAX_CLIP_PLANES_IMG"/>
+ <enum value="0x0D32" name="GL_MAX_CLIP_DISTANCES" alias="GL_MAX_CLIP_PLANES"/>
+ <enum value="0x0D33" name="GL_MAX_TEXTURE_SIZE"/>
+ <enum value="0x0D34" name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum value="0x0D35" name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum value="0x0D36" name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum value="0x0D36" name="GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV"/>
+ <enum value="0x0D37" name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum value="0x0D38" name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum value="0x0D38" name="GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV"/>
+ <enum value="0x0D39" name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum value="0x0D3A" name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum value="0x0D3B" name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+
+ <enum value="0x0D50" name="GL_SUBPIXEL_BITS"/>
+ <enum value="0x0D51" name="GL_INDEX_BITS"/>
+ <enum value="0x0D52" name="GL_RED_BITS"/>
+ <enum value="0x0D53" name="GL_GREEN_BITS"/>
+ <enum value="0x0D54" name="GL_BLUE_BITS"/>
+ <enum value="0x0D55" name="GL_ALPHA_BITS"/>
+ <enum value="0x0D56" name="GL_DEPTH_BITS"/>
+ <enum value="0x0D57" name="GL_STENCIL_BITS"/>
+ <enum value="0x0D58" name="GL_ACCUM_RED_BITS"/>
+ <enum value="0x0D59" name="GL_ACCUM_GREEN_BITS"/>
+ <enum value="0x0D5A" name="GL_ACCUM_BLUE_BITS"/>
+ <enum value="0x0D5B" name="GL_ACCUM_ALPHA_BITS"/>
+
+ <enum value="0x0D70" name="GL_NAME_STACK_DEPTH"/>
+
+ <enum value="0x0D80" name="GL_AUTO_NORMAL"/>
+
+ <enum value="0x0D90" name="GL_MAP1_COLOR_4"/>
+ <enum value="0x0D91" name="GL_MAP1_INDEX"/>
+ <enum value="0x0D92" name="GL_MAP1_NORMAL"/>
+ <enum value="0x0D93" name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum value="0x0D94" name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum value="0x0D95" name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum value="0x0D96" name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum value="0x0D97" name="GL_MAP1_VERTEX_3"/>
+ <enum value="0x0D98" name="GL_MAP1_VERTEX_4"/>
+
+ <enum value="0x0DB0" name="GL_MAP2_COLOR_4"/>
+ <enum value="0x0DB1" name="GL_MAP2_INDEX"/>
+ <enum value="0x0DB2" name="GL_MAP2_NORMAL"/>
+ <enum value="0x0DB3" name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum value="0x0DB4" name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum value="0x0DB5" name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum value="0x0DB6" name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum value="0x0DB7" name="GL_MAP2_VERTEX_3"/>
+ <enum value="0x0DB8" name="GL_MAP2_VERTEX_4"/>
+
+ <enum value="0x0DD0" name="GL_MAP1_GRID_DOMAIN"/>
+ <enum value="0x0DD1" name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum value="0x0DD2" name="GL_MAP2_GRID_DOMAIN"/>
+ <enum value="0x0DD3" name="GL_MAP2_GRID_SEGMENTS"/>
+
+ <enum value="0x0DE0" name="GL_TEXTURE_1D"/>
+ <enum value="0x0DE1" name="GL_TEXTURE_2D"/>
+
+ <enum value="0x0DF0" name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum value="0x0DF1" name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum value="0x0DF2" name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum value="0x0DF3" name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum value="0x0DF4" name="GL_SELECTION_BUFFER_SIZE"/>
+ <unused start="0x0DF5" end="0xFFFF" comment="Unused for GetPName"/>
+ <enum value="0x1000" name="GL_TEXTURE_WIDTH"/>
+ <enum value="0x1001" name="GL_TEXTURE_HEIGHT"/>
+ <enum value="0x1003" name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum value="0x1003" name="GL_TEXTURE_COMPONENTS"/>
+ <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR_EXT"/>
+ <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR_NV"/>
+ <enum value="0x1005" name="GL_TEXTURE_BORDER"/>
+ <enum value="0x1006" name="GL_TEXTURE_TARGET"/>
+ <unused start="0x1007" end="0x10FF" comment="Unused for GetTextureParameter"/>
+ <enum value="0x1100" name="GL_DONT_CARE"/>
+ <enum value="0x1101" name="GL_FASTEST"/>
+ <enum value="0x1102" name="GL_NICEST"/>
+ <unused start="0x1103" end="0x11FF" comment="Unused for HintMode"/>
+ <enum value="0x1200" name="GL_AMBIENT"/>
+ <enum value="0x1201" name="GL_DIFFUSE"/>
+ <enum value="0x1202" name="GL_SPECULAR"/>
+ <enum value="0x1203" name="GL_POSITION"/>
+ <enum value="0x1204" name="GL_SPOT_DIRECTION"/>
+ <enum value="0x1205" name="GL_SPOT_EXPONENT"/>
+ <enum value="0x1206" name="GL_SPOT_CUTOFF"/>
+ <enum value="0x1207" name="GL_CONSTANT_ATTENUATION"/>
+ <enum value="0x1208" name="GL_LINEAR_ATTENUATION"/>
+ <enum value="0x1209" name="GL_QUADRATIC_ATTENUATION"/>
+ <unused start="0x1210" end="0x12FF" comment="Unused for LightParameter"/>
+ <enum value="0x1300" name="GL_COMPILE"/>
+ <enum value="0x1301" name="GL_COMPILE_AND_EXECUTE"/>
+ <unused start="0x1302" end="0x13FF" comment="Unused for ListMode"/>
+ <enum value="0x1400" name="GL_BYTE"/>
+ <enum value="0x1401" name="GL_UNSIGNED_BYTE"/>
+ <enum value="0x1402" name="GL_SHORT"/>
+ <enum value="0x1403" name="GL_UNSIGNED_SHORT"/>
+ <enum value="0x1404" name="GL_INT"/>
+ <enum value="0x1405" name="GL_UNSIGNED_INT"/>
+ <enum value="0x1406" name="GL_FLOAT"/>
+ <enum value="0x1407" name="GL_2_BYTES"/>
+ <enum value="0x1407" name="GL_2_BYTES_NV"/>
+ <enum value="0x1408" name="GL_3_BYTES"/>
+ <enum value="0x1408" name="GL_3_BYTES_NV"/>
+ <enum value="0x1409" name="GL_4_BYTES"/>
+ <enum value="0x1409" name="GL_4_BYTES_NV"/>
+ <enum value="0x140A" name="GL_DOUBLE"/>
+ <enum value="0x140A" name="GL_DOUBLE_EXT"/>
+ <enum value="0x140B" name="GL_HALF_FLOAT"/>
+ <enum value="0x140B" name="GL_HALF_FLOAT_ARB"/>
+ <enum value="0x140B" name="GL_HALF_FLOAT_NV"/>
+ <enum value="0x140B" name="GL_HALF_APPLE"/>
+ <enum value="0x140C" name="GL_FIXED"/>
+ <enum value="0x140C" name="GL_FIXED_OES"/>
+ <unused start="0x140D" comment="Leave gap to preserve even/odd int/uint token values"/>
+ <enum value="0x140E" name="GL_INT64_NV"/>
+ <enum value="0x140F" name="GL_UNSIGNED_INT64_ARB"/>
+ <enum value="0x140F" name="GL_UNSIGNED_INT64_NV"/>
+ <unused start="0x1410" end="0x14FF" comment="Unused for DataType"/>
+ <enum value="0x1500" name="GL_CLEAR"/>
+ <enum value="0x1501" name="GL_AND"/>
+ <enum value="0x1502" name="GL_AND_REVERSE"/>
+ <enum value="0x1503" name="GL_COPY"/>
+ <enum value="0x1504" name="GL_AND_INVERTED"/>
+ <enum value="0x1505" name="GL_NOOP"/>
+ <enum value="0x1506" name="GL_XOR"/>
+ <enum value="0x1506" name="GL_XOR_NV"/>
+ <enum value="0x1507" name="GL_OR"/>
+ <enum value="0x1508" name="GL_NOR"/>
+ <enum value="0x1509" name="GL_EQUIV"/>
+ <enum value="0x150A" name="GL_INVERT"/>
+ <enum value="0x150B" name="GL_OR_REVERSE"/>
+ <enum value="0x150C" name="GL_COPY_INVERTED"/>
+ <enum value="0x150D" name="GL_OR_INVERTED"/>
+ <enum value="0x150E" name="GL_NAND"/>
+ <enum value="0x150F" name="GL_SET"/>
+ <unused start="0x1510" end="0x15FF" comment="Unused for LogicOp"/>
+ <enum value="0x1600" name="GL_EMISSION"/>
+ <enum value="0x1601" name="GL_SHININESS"/>
+ <enum value="0x1602" name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum value="0x1603" name="GL_COLOR_INDEXES"/>
+ <unused start="0x1604" end="0x16FF" comment="Unused for MaterialParameter"/>
+ <enum value="0x1700" name="GL_MODELVIEW"/>
+ <enum value="0x1700" name="GL_MODELVIEW0_ARB"/>
+ <enum value="0x1700" name="GL_MODELVIEW0_EXT"/>
+ <enum value="0x1700" name="GL_PATH_MODELVIEW_NV"/>
+ <enum value="0x1701" name="GL_PROJECTION"/>
+ <enum value="0x1701" name="GL_PATH_PROJECTION_NV"/>
+ <enum value="0x1702" name="GL_TEXTURE"/>
+ <unused start="0x1703" end="0x17FF" comment="Unused for MatrixMode"/>
+ <enum value="0x1800" name="GL_COLOR"/>
+ <enum value="0x1800" name="GL_COLOR_EXT"/>
+ <enum value="0x1801" name="GL_DEPTH"/>
+ <enum value="0x1801" name="GL_DEPTH_EXT"/>
+ <enum value="0x1802" name="GL_STENCIL"/>
+ <enum value="0x1802" name="GL_STENCIL_EXT"/>
+ <unused start="0x1803" end="0x18FF" comment="Unused for PixelCopyType"/>
+ <enum value="0x1900" name="GL_COLOR_INDEX"/>
+ <enum value="0x1901" name="GL_STENCIL_INDEX"/>
+ <enum value="0x1901" name="GL_STENCIL_INDEX_OES"/>
+ <enum value="0x1902" name="GL_DEPTH_COMPONENT"/>
+ <enum value="0x1903" name="GL_RED"/>
+ <enum value="0x1903" name="GL_RED_EXT"/>
+ <enum value="0x1903" name="GL_RED_NV"/>
+ <enum value="0x1904" name="GL_GREEN"/>
+ <enum value="0x1904" name="GL_GREEN_NV"/>
+ <enum value="0x1905" name="GL_BLUE"/>
+ <enum value="0x1905" name="GL_BLUE_NV"/>
+ <enum value="0x1906" name="GL_ALPHA"/>
+ <enum value="0x1907" name="GL_RGB"/>
+ <enum value="0x1908" name="GL_RGBA"/>
+ <enum value="0x1909" name="GL_LUMINANCE"/>
+ <enum value="0x190A" name="GL_LUMINANCE_ALPHA"/>
+ <unused start="0x1910" end="0x19FF" comment="Unused for PixelFormat"/>
+ <enum value="0x1A00" name="GL_BITMAP"/>
+ <unused start="0x1A01" end="0x1AFF" comment="Unused for PixelType"/>
+ <enum value="0x1B00" name="GL_POINT"/>
+ <enum value="0x1B01" name="GL_LINE"/>
+ <enum value="0x1B02" name="GL_FILL"/>
+ <unused start="0x1B03" end="0x1BFF" comment="Unused for PolygonMode"/>
+ <enum value="0x1C00" name="GL_RENDER"/>
+ <enum value="0x1C01" name="GL_FEEDBACK"/>
+ <enum value="0x1C02" name="GL_SELECT"/>
+ <unused start="0x1C03" end="0x1CFF" comment="Unused for RenderingMode"/>
+ <enum value="0x1D00" name="GL_FLAT"/>
+ <enum value="0x1D01" name="GL_SMOOTH"/>
+ <unused start="0x1D02" end="0x1DFF" comment="Unused for ShadingModel"/>
+ <enum value="0x1E00" name="GL_KEEP"/>
+ <enum value="0x1E01" name="GL_REPLACE"/>
+ <enum value="0x1E02" name="GL_INCR"/>
+ <enum value="0x1E03" name="GL_DECR"/>
+ <unused start="0x1E04" end="0x1EFF" comment="Unused for StencilOp"/>
+ <enum value="0x1F00" name="GL_VENDOR"/>
+ <enum value="0x1F01" name="GL_RENDERER"/>
+ <enum value="0x1F02" name="GL_VERSION"/>
+ <enum value="0x1F03" name="GL_EXTENSIONS"/>
+ <unused start="0x1F04" end="0x1FFF" comment="Unused for StringName"/>
+ <enum value="0x2000" name="GL_S"/>
+ <enum value="0x2001" name="GL_T"/>
+ <enum value="0x2002" name="GL_R"/>
+ <enum value="0x2003" name="GL_Q"/>
+ <unused start="0x2004" end="0x20FF" comment="Unused for TextureCoordName"/>
+ <enum value="0x2100" name="GL_MODULATE"/>
+ <enum value="0x2101" name="GL_DECAL"/>
+ <unused start="0x2102" end="0x21FF" comment="Unused for TextureEnvMode"/>
+ <enum value="0x2200" name="GL_TEXTURE_ENV_MODE"/>
+ <enum value="0x2201" name="GL_TEXTURE_ENV_COLOR"/>
+ <unused start="0x2202" end="0x22FF" comment="Unused for TextureEnvParameter"/>
+ <enum value="0x2300" name="GL_TEXTURE_ENV"/>
+ <unused start="0x2301" end="0x23FF" comment="Unused for TextureEnvTarget"/>
+ <enum value="0x2400" name="GL_EYE_LINEAR"/>
+ <enum value="0x2400" name="GL_EYE_LINEAR_NV"/>
+ <enum value="0x2401" name="GL_OBJECT_LINEAR"/>
+ <enum value="0x2401" name="GL_OBJECT_LINEAR_NV"/>
+ <enum value="0x2402" name="GL_SPHERE_MAP"/>
+ <unused start="0x2403" end="0x24FF" comment="Unused for TextureGenMode"/>
+ <enum value="0x2500" name="GL_TEXTURE_GEN_MODE"/>
+ <enum value="0x2500" name="GL_TEXTURE_GEN_MODE_OES"/>
+ <enum value="0x2501" name="GL_OBJECT_PLANE"/>
+ <enum value="0x2502" name="GL_EYE_PLANE"/>
+ <unused start="0x2503" end="0x25FF" comment="Unused for TextureGenParameter"/>
+ <enum value="0x2600" name="GL_NEAREST"/>
+ <enum value="0x2601" name="GL_LINEAR"/>
+ <unused start="0x2602" end="0x26FF" comment="Unused for TextureMagFilter"/>
+ <enum value="0x2700" name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum value="0x2701" name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum value="0x2702" name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum value="0x2703" name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <unused start="0x2704" end="0x27FF" comment="Unused for TextureMinFilter"/>
+ <enum value="0x2800" name="GL_TEXTURE_MAG_FILTER"/>
+ <enum value="0x2801" name="GL_TEXTURE_MIN_FILTER"/>
+ <enum value="0x2802" name="GL_TEXTURE_WRAP_S"/>
+ <enum value="0x2803" name="GL_TEXTURE_WRAP_T"/>
+ <unused start="0x2804" end="0x28FF" comment="Unused for TextureParameterName"/>
+ <enum value="0x2900" name="GL_CLAMP"/>
+ <enum value="0x2901" name="GL_REPEAT"/>
+ <unused start="0x2902" end="0x29FF" comment="Unused for TextureWrapMode"/>
+ <enum value="0x2A00" name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum value="0x2A01" name="GL_POLYGON_OFFSET_POINT"/>
+ <enum value="0x2A02" name="GL_POLYGON_OFFSET_LINE"/>
+ <unused start="0x2A03" end="0x2A09" comment="Unused for PolygonOffset"/>
+ <enum value="0x2A10" name="GL_R3_G3_B2"/>
+ <unused start="0x2A11" end="0x2A1F" comment="Unused for InternalFormat"/>
+ <enum value="0x2A20" name="GL_V2F"/>
+ <enum value="0x2A21" name="GL_V3F"/>
+ <enum value="0x2A22" name="GL_C4UB_V2F"/>
+ <enum value="0x2A23" name="GL_C4UB_V3F"/>
+ <enum value="0x2A24" name="GL_C3F_V3F"/>
+ <enum value="0x2A25" name="GL_N3F_V3F"/>
+ <enum value="0x2A26" name="GL_C4F_N3F_V3F"/>
+ <enum value="0x2A27" name="GL_T2F_V3F"/>
+ <enum value="0x2A28" name="GL_T4F_V4F"/>
+ <enum value="0x2A29" name="GL_T2F_C4UB_V3F"/>
+ <enum value="0x2A2A" name="GL_T2F_C3F_V3F"/>
+ <enum value="0x2A2B" name="GL_T2F_N3F_V3F"/>
+ <enum value="0x2A2C" name="GL_T2F_C4F_N3F_V3F"/>
+ <enum value="0x2A2D" name="GL_T4F_C4F_N3F_V4F"/>
+ <unused start="0x2A2E" end="0x2FFF" comment="Unused for InterleavedArrayFormat"/>
+ <enum value="0x3000" name="GL_CLIP_PLANE0"/>
+ <enum value="0x3000" name="GL_CLIP_PLANE0_IMG"/>
+ <enum value="0x3000" name="GL_CLIP_DISTANCE0" alias="GL_CLIP_PLANE0"/>
+ <enum value="0x3001" name="GL_CLIP_PLANE1"/>
+ <enum value="0x3001" name="GL_CLIP_PLANE1_IMG"/>
+ <enum value="0x3001" name="GL_CLIP_DISTANCE1" alias="GL_CLIP_PLANE1"/>
+ <enum value="0x3002" name="GL_CLIP_PLANE2"/>
+ <enum value="0x3002" name="GL_CLIP_PLANE2_IMG"/>
+ <enum value="0x3002" name="GL_CLIP_DISTANCE2" alias="GL_CLIP_PLANE2"/>
+ <enum value="0x3003" name="GL_CLIP_PLANE3"/>
+ <enum value="0x3003" name="GL_CLIP_PLANE3_IMG"/>
+ <enum value="0x3003" name="GL_CLIP_DISTANCE3" alias="GL_CLIP_PLANE3"/>
+ <enum value="0x3004" name="GL_CLIP_PLANE4"/>
+ <enum value="0x3004" name="GL_CLIP_PLANE4_IMG"/>
+ <enum value="0x3004" name="GL_CLIP_DISTANCE4" alias="GL_CLIP_PLANE4"/>
+ <enum value="0x3005" name="GL_CLIP_PLANE5"/>
+ <enum value="0x3005" name="GL_CLIP_PLANE5_IMG"/>
+ <enum value="0x3005" name="GL_CLIP_DISTANCE5" alias="GL_CLIP_PLANE5"/>
+ <enum value="0x3006" name="GL_CLIP_DISTANCE6"/>
+ <enum value="0x3007" name="GL_CLIP_DISTANCE7"/>
+ <unused start="0x3008" end="0x3FFF" comment="Unused for ClipPlaneName"/>
+ <enum value="0x4000" name="GL_LIGHT0"/>
+ <enum value="0x4001" name="GL_LIGHT1"/>
+ <enum value="0x4002" name="GL_LIGHT2"/>
+ <enum value="0x4003" name="GL_LIGHT3"/>
+ <enum value="0x4004" name="GL_LIGHT4"/>
+ <enum value="0x4005" name="GL_LIGHT5"/>
+ <enum value="0x4006" name="GL_LIGHT6"/>
+ <enum value="0x4007" name="GL_LIGHT7"/>
+ <unused start="0x4008" end="0x4FFF" comment="Unused for LightName"/>
+ <unused start="0x5000" end="0x5FFF" comment="Unused. Do not use."/>
+ <unused start="0x6000" end="0x6FFF" comment="Experimental (internal/test only) range. DO NOT SHIP VALUES IN THIS RANGE."/>
+ <unused start="0x7000" end="0x7FFF" comment="Unused. Do not use."/>
+ </enums>
+
+ <enums namespace="GL" start="0x8000" end="0x80BF" vendor="ARB" comment="The primary GL enumerant space begins here. All modern enum allocations are in this range. These enums are mostly assigned the default class since it's a great deal of not very useful work to be more specific">
+ <enum value="0x8000" name="GL_ABGR_EXT"/>
+ <enum value="0x8001" name="GL_CONSTANT_COLOR"/>
+ <enum value="0x8001" name="GL_CONSTANT_COLOR_EXT"/>
+ <enum value="0x8002" name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum value="0x8002" name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum value="0x8003" name="GL_CONSTANT_ALPHA"/>
+ <enum value="0x8003" name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum value="0x8004" name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum value="0x8004" name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum value="0x8005" name="GL_BLEND_COLOR"/>
+ <enum value="0x8005" name="GL_BLEND_COLOR_EXT"/>
+ <enum value="0x8006" name="GL_FUNC_ADD"/>
+ <enum value="0x8006" name="GL_FUNC_ADD_EXT"/>
+ <enum value="0x8006" name="GL_FUNC_ADD_OES"/>
+ <enum value="0x8007" name="GL_MIN"/>
+ <enum value="0x8007" name="GL_MIN_EXT"/>
+ <enum value="0x8008" name="GL_MAX"/>
+ <enum value="0x8008" name="GL_MAX_EXT"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_EXT"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_OES"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_RGB"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_RGB_EXT"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_RGB_OES"/>
+ <enum value="0x800A" name="GL_FUNC_SUBTRACT"/>
+ <enum value="0x800A" name="GL_FUNC_SUBTRACT_EXT"/>
+ <enum value="0x800A" name="GL_FUNC_SUBTRACT_OES"/>
+ <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+ <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT_OES"/>
+ <enum value="0x800C" name="GL_CMYK_EXT"/>
+ <enum value="0x800D" name="GL_CMYKA_EXT"/>
+ <enum value="0x800E" name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum value="0x800F" name="GL_UNPACK_CMYK_HINT_EXT"/>
+ <enum value="0x8010" name="GL_CONVOLUTION_1D"/>
+ <enum value="0x8010" name="GL_CONVOLUTION_1D_EXT"/>
+ <enum value="0x8011" name="GL_CONVOLUTION_2D"/>
+ <enum value="0x8011" name="GL_CONVOLUTION_2D_EXT"/>
+ <enum value="0x8012" name="GL_SEPARABLE_2D"/>
+ <enum value="0x8012" name="GL_SEPARABLE_2D_EXT"/>
+ <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE"/>
+ <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE"/>
+ <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS"/>
+ <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum value="0x8016" name="GL_REDUCE"/>
+ <enum value="0x8016" name="GL_REDUCE_EXT"/>
+ <enum value="0x8017" name="GL_CONVOLUTION_FORMAT"/>
+ <enum value="0x8017" name="GL_CONVOLUTION_FORMAT_EXT"/>
+ <enum value="0x8018" name="GL_CONVOLUTION_WIDTH"/>
+ <enum value="0x8018" name="GL_CONVOLUTION_WIDTH_EXT"/>
+ <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT"/>
+ <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT_EXT"/>
+ <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH"/>
+ <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
+ <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT"/>
+ <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
+ <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE"/>
+ <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
+ <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
+ <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
+ <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS"/>
+ <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
+ <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
+ <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
+ <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <enum value="0x8024" name="GL_HISTOGRAM"/>
+ <enum value="0x8024" name="GL_HISTOGRAM_EXT"/>
+ <enum value="0x8025" name="GL_PROXY_HISTOGRAM"/>
+ <enum value="0x8025" name="GL_PROXY_HISTOGRAM_EXT"/>
+ <enum value="0x8026" name="GL_HISTOGRAM_WIDTH"/>
+ <enum value="0x8026" name="GL_HISTOGRAM_WIDTH_EXT"/>
+ <enum value="0x8027" name="GL_HISTOGRAM_FORMAT"/>
+ <enum value="0x8027" name="GL_HISTOGRAM_FORMAT_EXT"/>
+ <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE"/>
+ <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE_EXT"/>
+ <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE"/>
+ <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
+ <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE"/>
+ <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
+ <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE"/>
+ <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
+ <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE"/>
+ <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
+ <enum value="0x802D" name="GL_HISTOGRAM_SINK"/>
+ <enum value="0x802D" name="GL_HISTOGRAM_SINK_EXT"/>
+ <enum value="0x802E" name="GL_MINMAX"/>
+ <enum value="0x802E" name="GL_MINMAX_EXT"/>
+ <enum value="0x802F" name="GL_MINMAX_FORMAT"/>
+ <enum value="0x802F" name="GL_MINMAX_FORMAT_EXT"/>
+ <enum value="0x8030" name="GL_MINMAX_SINK"/>
+ <enum value="0x8030" name="GL_MINMAX_SINK_EXT"/>
+ <enum value="0x8031" name="GL_TABLE_TOO_LARGE_EXT"/>
+ <enum value="0x8031" name="GL_TABLE_TOO_LARGE"/>
+ <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2"/>
+ <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
+ <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
+ <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
+ <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8"/>
+ <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
+ <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2"/>
+ <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+ <enum value="0x8037" name="GL_POLYGON_OFFSET_EXT"/>
+ <enum value="0x8037" name="GL_POLYGON_OFFSET_FILL"/>
+ <enum value="0x8038" name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum value="0x8038" name="GL_POLYGON_OFFSET_FACTOR_EXT"/>
+ <enum value="0x8039" name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+ <enum value="0x803A" name="GL_RESCALE_NORMAL"/>
+ <enum value="0x803A" name="GL_RESCALE_NORMAL_EXT"/>
+ <enum value="0x803B" name="GL_ALPHA4"/>
+ <enum value="0x803B" name="GL_ALPHA4_EXT"/>
+ <enum value="0x803C" name="GL_ALPHA8"/>
+ <enum value="0x803C" name="GL_ALPHA8_EXT"/>
+ <enum value="0x803C" name="GL_ALPHA8_OES"/>
+ <enum value="0x803D" name="GL_ALPHA12"/>
+ <enum value="0x803D" name="GL_ALPHA12_EXT"/>
+ <enum value="0x803E" name="GL_ALPHA16"/>
+ <enum value="0x803E" name="GL_ALPHA16_EXT"/>
+ <enum value="0x803F" name="GL_LUMINANCE4"/>
+ <enum value="0x803F" name="GL_LUMINANCE4_EXT"/>
+ <enum value="0x8040" name="GL_LUMINANCE8"/>
+ <enum value="0x8040" name="GL_LUMINANCE8_EXT"/>
+ <enum value="0x8040" name="GL_LUMINANCE8_OES"/>
+ <enum value="0x8041" name="GL_LUMINANCE12"/>
+ <enum value="0x8041" name="GL_LUMINANCE12_EXT"/>
+ <enum value="0x8042" name="GL_LUMINANCE16"/>
+ <enum value="0x8042" name="GL_LUMINANCE16_EXT"/>
+ <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4"/>
+ <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4_EXT"/>
+ <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4_OES"/>
+ <enum value="0x8044" name="GL_LUMINANCE6_ALPHA2"/>
+ <enum value="0x8044" name="GL_LUMINANCE6_ALPHA2_EXT"/>
+ <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8"/>
+ <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8_EXT"/>
+ <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8_OES"/>
+ <enum value="0x8046" name="GL_LUMINANCE12_ALPHA4"/>
+ <enum value="0x8046" name="GL_LUMINANCE12_ALPHA4_EXT"/>
+ <enum value="0x8047" name="GL_LUMINANCE12_ALPHA12"/>
+ <enum value="0x8047" name="GL_LUMINANCE12_ALPHA12_EXT"/>
+ <enum value="0x8048" name="GL_LUMINANCE16_ALPHA16"/>
+ <enum value="0x8048" name="GL_LUMINANCE16_ALPHA16_EXT"/>
+ <enum value="0x8049" name="GL_INTENSITY"/>
+ <enum value="0x8049" name="GL_INTENSITY_EXT"/>
+ <enum value="0x804A" name="GL_INTENSITY4"/>
+ <enum value="0x804A" name="GL_INTENSITY4_EXT"/>
+ <enum value="0x804B" name="GL_INTENSITY8"/>
+ <enum value="0x804B" name="GL_INTENSITY8_EXT"/>
+ <enum value="0x804C" name="GL_INTENSITY12"/>
+ <enum value="0x804C" name="GL_INTENSITY12_EXT"/>
+ <enum value="0x804D" name="GL_INTENSITY16"/>
+ <enum value="0x804D" name="GL_INTENSITY16_EXT"/>
+ <enum value="0x804E" name="GL_RGB2_EXT"/>
+ <enum value="0x804F" name="GL_RGB4"/>
+ <enum value="0x804F" name="GL_RGB4_EXT"/>
+ <enum value="0x8050" name="GL_RGB5"/>
+ <enum value="0x8050" name="GL_RGB5_EXT"/>
+ <enum value="0x8051" name="GL_RGB8"/>
+ <enum value="0x8051" name="GL_RGB8_EXT"/>
+ <enum value="0x8051" name="GL_RGB8_OES"/>
+ <enum value="0x8052" name="GL_RGB10"/>
+ <enum value="0x8052" name="GL_RGB10_EXT"/>
+ <enum value="0x8053" name="GL_RGB12"/>
+ <enum value="0x8053" name="GL_RGB12_EXT"/>
+ <enum value="0x8054" name="GL_RGB16"/>
+ <enum value="0x8054" name="GL_RGB16_EXT"/>
+ <enum value="0x8055" name="GL_RGBA2"/>
+ <enum value="0x8055" name="GL_RGBA2_EXT"/>
+ <enum value="0x8056" name="GL_RGBA4"/>
+ <enum value="0x8056" name="GL_RGBA4_EXT"/>
+ <enum value="0x8056" name="GL_RGBA4_OES"/>
+ <enum value="0x8057" name="GL_RGB5_A1"/>
+ <enum value="0x8057" name="GL_RGB5_A1_EXT"/>
+ <enum value="0x8057" name="GL_RGB5_A1_OES"/>
+ <enum value="0x8058" name="GL_RGBA8"/>
+ <enum value="0x8058" name="GL_RGBA8_EXT"/>
+ <enum value="0x8058" name="GL_RGBA8_OES"/>
+ <enum value="0x8059" name="GL_RGB10_A2"/>
+ <enum value="0x8059" name="GL_RGB10_A2_EXT"/>
+ <enum value="0x805A" name="GL_RGBA12"/>
+ <enum value="0x805A" name="GL_RGBA12_EXT"/>
+ <enum value="0x805B" name="GL_RGBA16"/>
+ <enum value="0x805B" name="GL_RGBA16_EXT"/>
+ <enum value="0x805C" name="GL_TEXTURE_RED_SIZE"/>
+ <enum value="0x805C" name="GL_TEXTURE_RED_SIZE_EXT"/>
+ <enum value="0x805D" name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum value="0x805D" name="GL_TEXTURE_GREEN_SIZE_EXT"/>
+ <enum value="0x805E" name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum value="0x805E" name="GL_TEXTURE_BLUE_SIZE_EXT"/>
+ <enum value="0x805F" name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum value="0x805F" name="GL_TEXTURE_ALPHA_SIZE_EXT"/>
+ <enum value="0x8060" name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum value="0x8060" name="GL_TEXTURE_LUMINANCE_SIZE_EXT"/>
+ <enum value="0x8061" name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum value="0x8061" name="GL_TEXTURE_INTENSITY_SIZE_EXT"/>
+ <enum value="0x8062" name="GL_REPLACE_EXT"/>
+ <enum value="0x8063" name="GL_PROXY_TEXTURE_1D"/>
+ <enum value="0x8063" name="GL_PROXY_TEXTURE_1D_EXT"/>
+ <enum value="0x8064" name="GL_PROXY_TEXTURE_2D"/>
+ <enum value="0x8064" name="GL_PROXY_TEXTURE_2D_EXT"/>
+ <enum value="0x8065" name="GL_TEXTURE_TOO_LARGE_EXT"/>
+ <enum value="0x8066" name="GL_TEXTURE_PRIORITY"/>
+ <enum value="0x8066" name="GL_TEXTURE_PRIORITY_EXT"/>
+ <enum value="0x8067" name="GL_TEXTURE_RESIDENT"/>
+ <enum value="0x8067" name="GL_TEXTURE_RESIDENT_EXT"/>
+ <enum value="0x8068" name="GL_TEXTURE_1D_BINDING_EXT"/>
+ <enum value="0x8068" name="GL_TEXTURE_BINDING_1D"/>
+ <enum value="0x8069" name="GL_TEXTURE_2D_BINDING_EXT"/>
+ <enum value="0x8069" name="GL_TEXTURE_BINDING_2D"/>
+ <enum value="0x806A" name="GL_TEXTURE_3D_BINDING_EXT"/>
+ <enum value="0x806A" name="GL_TEXTURE_3D_BINDING_OES"/>
+ <enum value="0x806A" name="GL_TEXTURE_BINDING_3D"/>
+ <enum value="0x806A" name="GL_TEXTURE_BINDING_3D_OES"/>
+ <enum value="0x806B" name="GL_PACK_SKIP_IMAGES"/>
+ <enum value="0x806B" name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT"/>
+ <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum value="0x806F" name="GL_TEXTURE_3D"/>
+ <enum value="0x806F" name="GL_TEXTURE_3D_EXT"/>
+ <enum value="0x806F" name="GL_TEXTURE_3D_OES"/>
+ <enum value="0x8070" name="GL_PROXY_TEXTURE_3D"/>
+ <enum value="0x8070" name="GL_PROXY_TEXTURE_3D_EXT"/>
+ <enum value="0x8071" name="GL_TEXTURE_DEPTH"/>
+ <enum value="0x8071" name="GL_TEXTURE_DEPTH_EXT"/>
+ <enum value="0x8072" name="GL_TEXTURE_WRAP_R"/>
+ <enum value="0x8072" name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum value="0x8072" name="GL_TEXTURE_WRAP_R_OES"/>
+ <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE"/>
+ <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+ <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE_OES"/>
+ <enum value="0x8074" name="GL_VERTEX_ARRAY"/>
+ <enum value="0x8074" name="GL_VERTEX_ARRAY_EXT"/>
+ <enum value="0x8074" name="GL_VERTEX_ARRAY_KHR"/>
+ <enum value="0x8075" name="GL_NORMAL_ARRAY"/>
+ <enum value="0x8075" name="GL_NORMAL_ARRAY_EXT"/>
+ <enum value="0x8076" name="GL_COLOR_ARRAY"/>
+ <enum value="0x8076" name="GL_COLOR_ARRAY_EXT"/>
+ <enum value="0x8077" name="GL_INDEX_ARRAY"/>
+ <enum value="0x8077" name="GL_INDEX_ARRAY_EXT"/>
+ <enum value="0x8078" name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum value="0x8078" name="GL_TEXTURE_COORD_ARRAY_EXT"/>
+ <enum value="0x8079" name="GL_EDGE_FLAG_ARRAY"/>
+ <enum value="0x8079" name="GL_EDGE_FLAG_ARRAY_EXT"/>
+ <enum value="0x807A" name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum value="0x807A" name="GL_VERTEX_ARRAY_SIZE_EXT"/>
+ <enum value="0x807B" name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum value="0x807B" name="GL_VERTEX_ARRAY_TYPE_EXT"/>
+ <enum value="0x807C" name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum value="0x807C" name="GL_VERTEX_ARRAY_STRIDE_EXT"/>
+ <enum value="0x807D" name="GL_VERTEX_ARRAY_COUNT_EXT"/>
+ <enum value="0x807E" name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum value="0x807E" name="GL_NORMAL_ARRAY_TYPE_EXT"/>
+ <enum value="0x807F" name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum value="0x807F" name="GL_NORMAL_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8080" name="GL_NORMAL_ARRAY_COUNT_EXT"/>
+ <enum value="0x8081" name="GL_COLOR_ARRAY_SIZE"/>
+ <enum value="0x8081" name="GL_COLOR_ARRAY_SIZE_EXT"/>
+ <enum value="0x8082" name="GL_COLOR_ARRAY_TYPE"/>
+ <enum value="0x8082" name="GL_COLOR_ARRAY_TYPE_EXT"/>
+ <enum value="0x8083" name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum value="0x8083" name="GL_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8084" name="GL_COLOR_ARRAY_COUNT_EXT"/>
+ <enum value="0x8085" name="GL_INDEX_ARRAY_TYPE"/>
+ <enum value="0x8085" name="GL_INDEX_ARRAY_TYPE_EXT"/>
+ <enum value="0x8086" name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum value="0x8086" name="GL_INDEX_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8087" name="GL_INDEX_ARRAY_COUNT_EXT"/>
+ <enum value="0x8088" name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum value="0x8088" name="GL_TEXTURE_COORD_ARRAY_SIZE_EXT"/>
+ <enum value="0x8089" name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum value="0x8089" name="GL_TEXTURE_COORD_ARRAY_TYPE_EXT"/>
+ <enum value="0x808A" name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum value="0x808A" name="GL_TEXTURE_COORD_ARRAY_STRIDE_EXT"/>
+ <enum value="0x808B" name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
+ <enum value="0x808C" name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum value="0x808C" name="GL_EDGE_FLAG_ARRAY_STRIDE_EXT"/>
+ <enum value="0x808D" name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
+ <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER_EXT"/>
+ <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER_EXT"/>
+ <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER"/>
+ <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER_EXT"/>
+ <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER"/>
+ <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER_EXT"/>
+ <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
+ <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
+ <enum value="0x8094" name="GL_INTERLACE_SGIX"/>
+ <enum value="0x8095" name="GL_DETAIL_TEXTURE_2D_SGIS"/>
+ <enum value="0x8096" name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+ <enum value="0x8097" name="GL_LINEAR_DETAIL_SGIS"/>
+ <enum value="0x8098" name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
+ <enum value="0x8099" name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
+ <enum value="0x809A" name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum value="0x809B" name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum value="0x809C" name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE_ARB"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE_EXT"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE_SGIS"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_COVERAGE_ARB"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_MASK_EXT"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_ARB"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_EXT"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum value="0x80A0" name="GL_SAMPLE_COVERAGE"/>
+ <enum value="0x80A0" name="GL_SAMPLE_COVERAGE_ARB"/>
+ <enum value="0x80A0" name="GL_SAMPLE_MASK_EXT"/>
+ <enum value="0x80A0" name="GL_SAMPLE_MASK_SGIS"/>
+ <enum value="0x80A1" name="GL_1PASS_EXT"/>
+ <enum value="0x80A1" name="GL_1PASS_SGIS"/>
+ <enum value="0x80A2" name="GL_2PASS_0_EXT"/>
+ <enum value="0x80A2" name="GL_2PASS_0_SGIS"/>
+ <enum value="0x80A3" name="GL_2PASS_1_EXT"/>
+ <enum value="0x80A3" name="GL_2PASS_1_SGIS"/>
+ <enum value="0x80A4" name="GL_4PASS_0_EXT"/>
+ <enum value="0x80A4" name="GL_4PASS_0_SGIS"/>
+ <enum value="0x80A5" name="GL_4PASS_1_EXT"/>
+ <enum value="0x80A5" name="GL_4PASS_1_SGIS"/>
+ <enum value="0x80A6" name="GL_4PASS_2_EXT"/>
+ <enum value="0x80A6" name="GL_4PASS_2_SGIS"/>
+ <enum value="0x80A7" name="GL_4PASS_3_EXT"/>
+ <enum value="0x80A7" name="GL_4PASS_3_SGIS"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_ARB"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_EXT"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_SGIS"/>
+ <enum value="0x80A9" name="GL_SAMPLES"/>
+ <enum value="0x80A9" name="GL_SAMPLES_ARB"/>
+ <enum value="0x80A9" name="GL_SAMPLES_EXT"/>
+ <enum value="0x80A9" name="GL_SAMPLES_SGIS"/>
+ <enum value="0x80AA" name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum value="0x80AA" name="GL_SAMPLE_COVERAGE_VALUE_ARB"/>
+ <enum value="0x80AA" name="GL_SAMPLE_MASK_VALUE_EXT"/>
+ <enum value="0x80AA" name="GL_SAMPLE_MASK_VALUE_SGIS"/>
+ <enum value="0x80AB" name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum value="0x80AB" name="GL_SAMPLE_COVERAGE_INVERT_ARB"/>
+ <enum value="0x80AB" name="GL_SAMPLE_MASK_INVERT_EXT"/>
+ <enum value="0x80AB" name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+ <enum value="0x80AC" name="GL_SAMPLE_PATTERN_EXT"/>
+ <enum value="0x80AC" name="GL_SAMPLE_PATTERN_SGIS"/>
+ <enum value="0x80AD" name="GL_LINEAR_SHARPEN_SGIS"/>
+ <enum value="0x80AE" name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
+ <enum value="0x80AF" name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
+ <enum value="0x80B0" name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum value="0x80B1" name="GL_COLOR_MATRIX"/>
+ <enum value="0x80B1" name="GL_COLOR_MATRIX_SGI"/>
+ <enum value="0x80B2" name="GL_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum value="0x80B2" name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum value="0x80B3" name="GL_MAX_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum value="0x80B3" name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
+ <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
+ <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
+ <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
+ <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
+ <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
+ <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
+ <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
+ <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ <enum value="0x80BC" name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum value="0x80BD" name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum value="0x80BE" name="GL_TEXTURE_ENV_BIAS_SGIX"/>
+ <enum value="0x80BF" name="GL_SHADOW_AMBIENT_SGIX"/>
+ <enum value="0x80BF" name="GL_TEXTURE_COMPARE_FAIL_VALUE_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x80C0" end="0x80CF" vendor="ZiiLabs">
+ <unused start="0x80C0" end="0x80C7" vendor="ZiiLabs"/>
+ <enum value="0x80C8" name="GL_BLEND_DST_RGB"/>
+ <enum value="0x80C8" name="GL_BLEND_DST_RGB_EXT"/>
+ <enum value="0x80C8" name="GL_BLEND_DST_RGB_OES"/>
+ <enum value="0x80C9" name="GL_BLEND_SRC_RGB"/>
+ <enum value="0x80C9" name="GL_BLEND_SRC_RGB_EXT"/>
+ <enum value="0x80C9" name="GL_BLEND_SRC_RGB_OES"/>
+ <enum value="0x80CA" name="GL_BLEND_DST_ALPHA"/>
+ <enum value="0x80CA" name="GL_BLEND_DST_ALPHA_EXT"/>
+ <enum value="0x80CA" name="GL_BLEND_DST_ALPHA_OES"/>
+ <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA"/>
+ <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA_EXT"/>
+ <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA_OES"/>
+ <enum value="0x80CC" name="GL_422_EXT"/>
+ <enum value="0x80CD" name="GL_422_REV_EXT"/>
+ <enum value="0x80CE" name="GL_422_AVERAGE_EXT"/>
+ <enum value="0x80CF" name="GL_422_REV_AVERAGE_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x80D0" end="0x80DF" vendor="SGI">
+ <enum value="0x80D0" name="GL_COLOR_TABLE"/>
+ <enum value="0x80D0" name="GL_COLOR_TABLE_SGI"/>
+ <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE"/>
+ <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE_SGI"/>
+ <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE"/>
+ <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS"/>
+ <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT"/>
+ <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT_SGI"/>
+ <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH"/>
+ <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH_SGI"/>
+ <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE"/>
+ <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
+ <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE"/>
+ <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
+ <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE"/>
+ <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
+ <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE"/>
+ <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
+ <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE"/>
+ <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
+ <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE"/>
+ <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+ </enums>
+
+ <enums namespace="GL" start="0x80E0" end="0x810F" vendor="MS">
+ <enum value="0x80E0" name="GL_BGR"/>
+ <enum value="0x80E0" name="GL_BGR_EXT"/>
+ <enum value="0x80E1" name="GL_BGRA"/>
+ <enum value="0x80E1" name="GL_BGRA_EXT"/>
+ <enum value="0x80E1" name="GL_BGRA_IMG"/>
+ <enum value="0x80E2" name="GL_COLOR_INDEX1_EXT"/>
+ <enum value="0x80E3" name="GL_COLOR_INDEX2_EXT"/>
+ <enum value="0x80E4" name="GL_COLOR_INDEX4_EXT"/>
+ <enum value="0x80E5" name="GL_COLOR_INDEX8_EXT"/>
+ <enum value="0x80E6" name="GL_COLOR_INDEX12_EXT"/>
+ <enum value="0x80E7" name="GL_COLOR_INDEX16_EXT"/>
+ <enum value="0x80E8" name="GL_MAX_ELEMENTS_VERTICES"/>
+ <enum value="0x80E8" name="GL_MAX_ELEMENTS_VERTICES_EXT"/>
+ <enum value="0x80E9" name="GL_MAX_ELEMENTS_INDICES"/>
+ <enum value="0x80E9" name="GL_MAX_ELEMENTS_INDICES_EXT"/>
+ <enum value="0x80EA" name="GL_PHONG_WIN"/>
+ <enum value="0x80EB" name="GL_PHONG_HINT_WIN"/>
+ <enum value="0x80EC" name="GL_FOG_SPECULAR_TEXTURE_WIN"/>
+ <enum value="0x80ED" name="GL_TEXTURE_INDEX_SIZE_EXT"/>
+ <enum value="0x80EE" name="GL_PARAMETER_BUFFER_ARB"/>
+ <enum value="0x80EF" name="GL_PARAMETER_BUFFER_BINDING_ARB"/>
+ <enum value="0x80F0" name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+ <unused start="0x80F1" end="0x810F" vendor="MS"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8110" end="0x814F" vendor="SGI">
+ <enum value="0x8110" name="GL_DUAL_ALPHA4_SGIS"/>
+ <enum value="0x8111" name="GL_DUAL_ALPHA8_SGIS"/>
+ <enum value="0x8112" name="GL_DUAL_ALPHA12_SGIS"/>
+ <enum value="0x8113" name="GL_DUAL_ALPHA16_SGIS"/>
+ <enum value="0x8114" name="GL_DUAL_LUMINANCE4_SGIS"/>
+ <enum value="0x8115" name="GL_DUAL_LUMINANCE8_SGIS"/>
+ <enum value="0x8116" name="GL_DUAL_LUMINANCE12_SGIS"/>
+ <enum value="0x8117" name="GL_DUAL_LUMINANCE16_SGIS"/>
+ <enum value="0x8118" name="GL_DUAL_INTENSITY4_SGIS"/>
+ <enum value="0x8119" name="GL_DUAL_INTENSITY8_SGIS"/>
+ <enum value="0x811A" name="GL_DUAL_INTENSITY12_SGIS"/>
+ <enum value="0x811B" name="GL_DUAL_INTENSITY16_SGIS"/>
+ <enum value="0x811C" name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
+ <enum value="0x811D" name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
+ <enum value="0x811E" name="GL_QUAD_ALPHA4_SGIS"/>
+ <enum value="0x811F" name="GL_QUAD_ALPHA8_SGIS"/>
+ <enum value="0x8120" name="GL_QUAD_LUMINANCE4_SGIS"/>
+ <enum value="0x8121" name="GL_QUAD_LUMINANCE8_SGIS"/>
+ <enum value="0x8122" name="GL_QUAD_INTENSITY4_SGIS"/>
+ <enum value="0x8123" name="GL_QUAD_INTENSITY8_SGIS"/>
+ <enum value="0x8124" name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum value="0x8125" name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN_ARB"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN_EXT"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN_SGIS"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX_ARB"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX_EXT"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_EXT"/>
+ <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
+ <enum value="0x812A" name="GL_FOG_FUNC_SGIS"/>
+ <enum value="0x812B" name="GL_FOG_FUNC_POINTS_SGIS"/>
+ <enum value="0x812C" name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_ARB"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_EXT"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_NV"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_SGIS"/>
+ <enum value="0x812E" name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
+ <enum value="0x812F" name="GL_CLAMP_TO_EDGE"/>
+ <enum value="0x812F" name="GL_CLAMP_TO_EDGE_SGIS"/>
+ <enum value="0x8130" name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum value="0x8131" name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum value="0x8132" name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum value="0x8133" name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum value="0x8134" name="GL_TEXTURE_4D_SGIS"/>
+ <enum value="0x8135" name="GL_PROXY_TEXTURE_4D_SGIS"/>
+ <enum value="0x8136" name="GL_TEXTURE_4DSIZE_SGIS"/>
+ <enum value="0x8137" name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum value="0x8138" name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
+ <enum value="0x8139" name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum value="0x813A" name="GL_TEXTURE_MIN_LOD"/>
+ <enum value="0x813A" name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ <enum value="0x813B" name="GL_TEXTURE_MAX_LOD"/>
+ <enum value="0x813B" name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL_APPLE"/>
+ <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ <enum value="0x813E" name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
+ <enum value="0x813F" name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
+ <enum value="0x8140" name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum value="0x8141" name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum value="0x8142" name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum value="0x8143" name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum value="0x8144" name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum value="0x8145" name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ <enum value="0x8146" name="GL_FILTER4_SGIS"/>
+ <enum value="0x8147" name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
+ <enum value="0x8148" name="GL_SPRITE_SGIX"/>
+ <enum value="0x8149" name="GL_SPRITE_MODE_SGIX"/>
+ <enum value="0x814A" name="GL_SPRITE_AXIS_SGIX"/>
+ <enum value="0x814B" name="GL_SPRITE_TRANSLATION_SGIX"/>
+ <enum value="0x814C" name="GL_SPRITE_AXIAL_SGIX"/>
+ <enum value="0x814D" name="GL_SPRITE_OBJECT_ALIGNED_SGIX"/>
+ <enum value="0x814E" name="GL_SPRITE_EYE_ALIGNED_SGIX"/>
+ <enum value="0x814F" name="GL_TEXTURE_4D_BINDING_SGIS"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8150" end="0x816F" vendor="HP">
+ <enum value="0x8150" name="GL_IGNORE_BORDER_HP"/>
+ <enum value="0x8151" name="GL_CONSTANT_BORDER"/>
+ <enum value="0x8151" name="GL_CONSTANT_BORDER_HP"/>
+ <unused start="0x8152" vendor="HP" comment="GL_WRAP_BORDER = 0x8152 was proposed, but not actually promoted to core"/>
+ <enum value="0x8153" name="GL_REPLICATE_BORDER"/>
+ <enum value="0x8153" name="GL_REPLICATE_BORDER_HP"/>
+ <enum value="0x8154" name="GL_CONVOLUTION_BORDER_COLOR"/>
+ <enum value="0x8154" name="GL_CONVOLUTION_BORDER_COLOR_HP"/>
+ <enum value="0x8155" name="GL_IMAGE_SCALE_X_HP"/>
+ <enum value="0x8156" name="GL_IMAGE_SCALE_Y_HP"/>
+ <enum value="0x8157" name="GL_IMAGE_TRANSLATE_X_HP"/>
+ <enum value="0x8158" name="GL_IMAGE_TRANSLATE_Y_HP"/>
+ <enum value="0x8159" name="GL_IMAGE_ROTATE_ANGLE_HP"/>
+ <enum value="0x815A" name="GL_IMAGE_ROTATE_ORIGIN_X_HP"/>
+ <enum value="0x815B" name="GL_IMAGE_ROTATE_ORIGIN_Y_HP"/>
+ <enum value="0x815C" name="GL_IMAGE_MAG_FILTER_HP"/>
+ <enum value="0x815D" name="GL_IMAGE_MIN_FILTER_HP"/>
+ <enum value="0x815E" name="GL_IMAGE_CUBIC_WEIGHT_HP"/>
+ <enum value="0x815F" name="GL_CUBIC_HP"/>
+ <enum value="0x8160" name="GL_AVERAGE_HP"/>
+ <enum value="0x8161" name="GL_IMAGE_TRANSFORM_2D_HP"/>
+ <enum value="0x8162" name="GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <enum value="0x8163" name="GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <unused start="0x8164" vendor="HP"/>
+ <enum value="0x8165" name="GL_OCCLUSION_TEST_HP"/>
+ <enum value="0x8166" name="GL_OCCLUSION_TEST_RESULT_HP"/>
+ <enum value="0x8167" name="GL_TEXTURE_LIGHTING_MODE_HP"/>
+ <enum value="0x8168" name="GL_TEXTURE_POST_SPECULAR_HP"/>
+ <enum value="0x8169" name="GL_TEXTURE_PRE_SPECULAR_HP"/>
+ <unused start="0x816A" end="0x816F" vendor="HP"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8170" end="0x81CF" vendor="SGI">
+ <enum value="0x8170" name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
+ <enum value="0x8171" name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum value="0x8172" name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum value="0x8173" name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum value="0x8174" name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum value="0x8175" name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum value="0x8176" name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum value="0x8177" name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
+ <enum value="0x8178" name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum value="0x8179" name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum value="0x817A" name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum value="0x817B" name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
+ <enum value="0x817C" name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
+ <enum value="0x817D" name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum value="0x817E" name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
+ <enum value="0x817F" name="GL_IR_INSTRUMENT1_SGIX"/>
+ <enum value="0x8180" name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
+ <enum value="0x8181" name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
+ <enum value="0x8182" name="GL_LIST_PRIORITY_SGIX"/>
+ <enum value="0x8183" name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ <enum value="0x8184" name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+ <enum value="0x8185" name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+ <enum value="0x8186" name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+ <enum value="0x8187" name="GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX"/>
+ <enum value="0x8188" name="GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX"/>
+ <enum value="0x8189" name="GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX"/>
+ <enum value="0x818A" name="GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX"/>
+ <enum value="0x818B" name="GL_FRAMEZOOM_SGIX"/>
+ <enum value="0x818C" name="GL_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum value="0x818D" name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum value="0x818E" name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum value="0x818F" name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum value="0x8190" name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ <enum value="0x8191" name="GL_GENERATE_MIPMAP"/>
+ <enum value="0x8191" name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ <unused start="0x8193" end="0x8193" comment="Incomplete extension SGIX_spotlight_cutoff"/>
+ <!-- <enum value="0x8193" name="GL_SPOT_CUTOFF_DELTA_SGIX"/> -->
+ <enum value="0x8194" name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum value="0x8195" name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ <enum value="0x8196" name="GL_DEFORMATIONS_MASK_SGIX"/>
+ <enum value="0x8197" name="GL_MAX_DEFORMATION_ORDER_SGIX"/>
+ <enum value="0x8198" name="GL_FOG_OFFSET_SGIX"/>
+ <enum value="0x8199" name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ <enum value="0x819A" name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum value="0x819B" name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
+ <enum value="0x819C" name="GL_TEXTURE_LEQUAL_R_SGIX"/>
+ <enum value="0x819D" name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+ <unused start="0x819E" end="0x81A4" comment="Private (internal) extension SGIX_igloo_interface"/>
+ <!-- <enum value="0x819E" name="GL_IGLOO_FULLSCREEN_SGIX"/> -->
+ <!-- <enum value="0x819F" name="GL_IGLOO_VIEWPORT_OFFSET_SGIX"/> -->
+ <!-- <enum value="0x81A0" name="GL_IGLOO_SWAPTMESH_SGIX"/> -->
+ <!-- <enum value="0x81A1" name="GL_IGLOO_COLORNORMAL_SGIX"/> -->
+ <!-- <enum value="0x81A2" name="GL_IGLOO_IRISGL_MODE_SGIX"/> -->
+ <!-- <enum value="0x81A3" name="GL_IGLOO_LMC_COLOR_SGIX"/> -->
+ <!-- <enum value="0x81A4" name="GL_IGLOO_TMESHMODE_SGIX"/> -->
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16"/>
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_ARB"/>
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_OES"/>
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_SGIX"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_ARB"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_OES"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_SGIX"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_ARB"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_OES"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_SGIX"/>
+ <enum value="0x81A8" name="GL_ARRAY_ELEMENT_LOCK_FIRST_EXT"/>
+ <enum value="0x81A9" name="GL_ARRAY_ELEMENT_LOCK_COUNT_EXT"/>
+ <enum value="0x81AA" name="GL_CULL_VERTEX_EXT"/>
+ <enum value="0x81AB" name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
+ <enum value="0x81AC" name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
+ <enum value="0x81AD" name="GL_IUI_V2F_EXT"/>
+ <enum value="0x81AE" name="GL_IUI_V3F_EXT"/>
+ <enum value="0x81AF" name="GL_IUI_N3F_V2F_EXT"/>
+ <enum value="0x81B0" name="GL_IUI_N3F_V3F_EXT"/>
+ <enum value="0x81B1" name="GL_T2F_IUI_V2F_EXT"/>
+ <enum value="0x81B2" name="GL_T2F_IUI_V3F_EXT"/>
+ <enum value="0x81B3" name="GL_T2F_IUI_N3F_V2F_EXT"/>
+ <enum value="0x81B4" name="GL_T2F_IUI_N3F_V3F_EXT"/>
+ <enum value="0x81B5" name="GL_INDEX_TEST_EXT"/>
+ <enum value="0x81B6" name="GL_INDEX_TEST_FUNC_EXT"/>
+ <enum value="0x81B7" name="GL_INDEX_TEST_REF_EXT"/>
+ <enum value="0x81B8" name="GL_INDEX_MATERIAL_EXT"/>
+ <enum value="0x81B9" name="GL_INDEX_MATERIAL_PARAMETER_EXT"/>
+ <enum value="0x81BA" name="GL_INDEX_MATERIAL_FACE_EXT"/>
+ <enum value="0x81BB" name="GL_YCRCB_422_SGIX"/>
+ <enum value="0x81BC" name="GL_YCRCB_444_SGIX"/>
+ <unused start="0x81BD" end="0x81C3" comment="Incomplete extension SGI_complex_type"/>
+ <!-- <enum value="0x81BD" name="GL_COMPLEX_UNSIGNED_BYTE_SGI"/> -->
+ <!-- <enum value="0x81BE" name="GL_COMPLEX_BYTE_SGI"/> -->
+ <!-- <enum value="0x81BF" name="GL_COMPLEX_UNSIGNED_SHORT_SGI"/> -->
+ <!-- <enum value="0x81C0" name="GL_COMPLEX_SHORT_SGI"/> -->
+ <!-- <enum value="0x81C1" name="GL_COMPLEX_UNSIGNED_INT_SGI"/> -->
+ <!-- <enum value="0x81C2" name="GL_COMPLEX_INT_SGI"/> -->
+ <!-- <enum value="0x81C3" name="GL_COMPLEX_FLOAT_SGI"/> -->
+ <unused start="0x81C4" end="0x81CA" comment="Incomplete extension SGI_fft"/>
+ <!-- <enum value="0x81C4" name="GL_PIXEL_TRANSFORM_OPERATOR_SGI"/> -->
+ <!-- <enum value="0x81C5" name="GL_CONVOLUTION_SGI"/> -->
+ <!-- <enum value="0x81C6" name="GL_FFT_1D_SGI"/> -->
+ <!-- <enum value="0x81C7" name="GL_PIXEL_TRANSFORM_SGI"/> -->
+ <!-- <enum value="0x81C8" name="GL_MAX_FFT_WIDTH_SGI"/> -->
+ <!-- <enum value="0x81C9" name="GL_SORT_SGI"/> -->
+ <!-- <enum value="0x81CA" name="GL_TRANSPOSE_SGI"/> -->
+ <unused start="0x81CB" end="0x81CF" comment="Incomplete extension SGIX_nurbs_eval"/>
+ <!-- <enum value="0x81CB" name="GL_MAP1_VERTEX_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CC" name="GL_MAP1_VERTEX_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CD" name="GL_MAP1_INDEX_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CE" name="GL_MAP1_COLOR_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CF" name="GL_MAP1_NORMAL_NURBS_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x81D0" end="0x81DF" vendor="SUN">
+ <unused start="0x81D0" end="0x81D1" vendor="SUN"/>
+ <unused start="0x81D2" end="0x81D3" comment="No extension spec SUNX_surface_hint"/>
+ <!-- <enum value="0x81D2" name="GL_SURFACE_SIZE_HINT_SUNX"/> -->
+ <!-- <enum value="0x81D3" name="GL_LARGE_SUNX"/> -->
+ <enum value="0x81D4" name="GL_WRAP_BORDER_SUN"/>
+ <enum value="0x81D5" name="GL_UNPACK_CONSTANT_DATA_SUNX"/>
+ <enum value="0x81D6" name="GL_TEXTURE_CONSTANT_DATA_SUNX"/>
+ <enum value="0x81D7" name="GL_TRIANGLE_LIST_SUN"/>
+ <enum value="0x81D8" name="GL_REPLACEMENT_CODE_SUN"/>
+ <enum value="0x81D9" name="GL_GLOBAL_ALPHA_SUN"/>
+ <enum value="0x81DA" name="GL_GLOBAL_ALPHA_FACTOR_SUN"/>
+ <unused start="0x81DB" end="0x81DF" vendor="SUN"/>
+ </enums>
+
+ <enums namespace="GL" start="0x81E0" end="0x81FF" vendor="SGI">
+ <unused start="0x81E0" end="0x81EE" comment="Incomplete extension SGIX_nurbs_eval"/>
+ <!-- <enum value="0x81E0" name="GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E1" name="GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E2" name="GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E3" name="GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E4" name="GL_MAP2_VERTEX_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E5" name="GL_MAP2_VERTEX_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E6" name="GL_MAP2_INDEX_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E7" name="GL_MAP2_COLOR_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E8" name="GL_MAP2_NORMAL_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E9" name="GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81EA" name="GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81EB" name="GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81EC" name="GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81ED" name="GL_NURBS_KNOT_COUNT_SGIX"/> -->
+ <!-- <enum value="0x81EE" name="GL_NURBS_KNOT_VECTOR_SGIX"/> -->
+ <enum value="0x81EF" name="GL_TEXTURE_COLOR_WRITEMASK_SGIS"/>
+ <enum value="0x81F0" name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
+ <enum value="0x81F1" name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
+ <enum value="0x81F2" name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
+ <enum value="0x81F3" name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
+ <enum value="0x81F4" name="GL_EYE_POINT_SGIS"/>
+ <enum value="0x81F5" name="GL_OBJECT_POINT_SGIS"/>
+ <enum value="0x81F6" name="GL_EYE_LINE_SGIS"/>
+ <enum value="0x81F7" name="GL_OBJECT_LINE_SGIS"/>
+ <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
+ <enum value="0x81F9" name="GL_SINGLE_COLOR"/>
+ <enum value="0x81F9" name="GL_SINGLE_COLOR_EXT"/>
+ <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
+ <enum value="0x81FB" name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ <unused start="0x81FC" end="0x81FD" comment="Incomplete extension SGIX_fog_scale"/>
+ <!-- <enum value="0x81FC" name="GL_FOG_SCALE_SGIX"/> -->
+ <!-- <enum value="0x81FD" name="GL_FOG_SCALE_VALUE_SGIX"/> -->
+ <unused start="0x81FE" end="0x81FF" comment="Incomplete extension SGIX_fog_blend"/>
+ <!-- <enum value="0x81FE" name="GL_FOG_BLEND_ALPHA_SGIX"/> -->
+ <!-- <enum value="0x81FF" name="GL_FOG_BLEND_COLOR_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x8200" end="0x820F" vendor="AMD" comment="Range released by MS 2002/9/16">
+ <enum value="0x8200" name="GL_TEXT_FRAGMENT_SHADER_ATI"/>
+ <unused start="0x8201" end="0x820F" vendor="AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8210" end="0x823F" vendor="ARB">
+ <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"/>
+ <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"/>
+ <enum value="0x8212" name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum value="0x8213" name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum value="0x8214" name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum value="0x8215" name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum value="0x8216" name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum value="0x8217" name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum value="0x8218" name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum value="0x8219" name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum value="0x8219" name="GL_FRAMEBUFFER_UNDEFINED_OES"/>
+ <enum value="0x821A" name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum value="0x821B" name="GL_MAJOR_VERSION"/>
+ <enum value="0x821C" name="GL_MINOR_VERSION"/>
+ <enum value="0x821D" name="GL_NUM_EXTENSIONS"/>
+ <enum value="0x821E" name="GL_CONTEXT_FLAGS"/>
+ <enum value="0x821F" name="GL_BUFFER_IMMUTABLE_STORAGE"/>
+ <enum value="0x8220" name="GL_BUFFER_STORAGE_FLAGS"/>
+ <enum value="0x8221" name="GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED" comment="Proposed for Bug 10364"/>
+ <enum value="0x8222" name="GL_INDEX"/>
+ <unused start="0x8223" vendor="ARB" comment="GL_DEPTH_BUFFER = 0x8223 not actually used in the API"/>
+ <unused start="0x8224" vendor="ARB" comment="GL_STENCIL_BUFFER = 0x8224 not actually used in the API"/>
+ <enum value="0x8225" name="GL_COMPRESSED_RED"/>
+ <enum value="0x8226" name="GL_COMPRESSED_RG"/>
+ <enum value="0x8227" name="GL_RG"/>
+ <enum value="0x8227" name="GL_RG_EXT"/>
+ <enum value="0x8228" name="GL_RG_INTEGER"/>
+ <enum value="0x8229" name="GL_R8"/>
+ <enum value="0x8229" name="GL_R8_EXT"/>
+ <enum value="0x822A" name="GL_R16"/>
+ <enum value="0x822B" name="GL_RG8"/>
+ <enum value="0x822B" name="GL_RG8_EXT"/>
+ <enum value="0x822C" name="GL_RG16"/>
+ <enum value="0x822D" name="GL_R16F"/>
+ <enum value="0x822D" name="GL_R16F_EXT"/>
+ <enum value="0x822E" name="GL_R32F"/>
+ <enum value="0x822E" name="GL_R32F_EXT"/>
+ <enum value="0x822F" name="GL_RG16F"/>
+ <enum value="0x822F" name="GL_RG16F_EXT"/>
+ <enum value="0x8230" name="GL_RG32F"/>
+ <enum value="0x8230" name="GL_RG32F_EXT"/>
+ <enum value="0x8231" name="GL_R8I"/>
+ <enum value="0x8232" name="GL_R8UI"/>
+ <enum value="0x8233" name="GL_R16I"/>
+ <enum value="0x8234" name="GL_R16UI"/>
+ <enum value="0x8235" name="GL_R32I"/>
+ <enum value="0x8236" name="GL_R32UI"/>
+ <enum value="0x8237" name="GL_RG8I"/>
+ <enum value="0x8238" name="GL_RG8UI"/>
+ <enum value="0x8239" name="GL_RG16I"/>
+ <enum value="0x823A" name="GL_RG16UI"/>
+ <enum value="0x823B" name="GL_RG32I"/>
+ <enum value="0x823C" name="GL_RG32UI"/>
+ <unused start="0x823D" end="0x823F" vendor="ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8240" end="0x82AF" vendor="ARB" comment="Range released by MS on 2002/9/16">
+ <enum value="0x8240" name="GL_SYNC_CL_EVENT_ARB"/>
+ <enum value="0x8241" name="GL_SYNC_CL_EVENT_COMPLETE_ARB"/>
+ <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+ <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB"/>
+ <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR"/>
+ <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
+ <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB"/>
+ <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR"/>
+ <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION"/>
+ <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION_ARB"/>
+ <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION_KHR"/>
+ <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+ <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM_ARB"/>
+ <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM_KHR"/>
+ <enum value="0x8246" name="GL_DEBUG_SOURCE_API"/>
+ <enum value="0x8246" name="GL_DEBUG_SOURCE_API_ARB"/>
+ <enum value="0x8246" name="GL_DEBUG_SOURCE_API_KHR"/>
+ <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+ <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB"/>
+ <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR"/>
+ <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+ <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER_ARB"/>
+ <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER_KHR"/>
+ <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+ <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY_ARB"/>
+ <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY_KHR"/>
+ <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION"/>
+ <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION_ARB"/>
+ <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION_KHR"/>
+ <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER"/>
+ <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER_ARB"/>
+ <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER_KHR"/>
+ <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR"/>
+ <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR_ARB"/>
+ <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR_KHR"/>
+ <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+ <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB"/>
+ <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR"/>
+ <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+ <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB"/>
+ <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR"/>
+ <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY"/>
+ <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY_ARB"/>
+ <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY_KHR"/>
+ <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE"/>
+ <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE_ARB"/>
+ <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE_KHR"/>
+ <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER"/>
+ <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER_ARB"/>
+ <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER_KHR"/>
+ <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET"/>
+ <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_EXT"/>
+ <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_KHR"/>
+ <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET"/>
+ <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_ARB"/>
+ <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_EXT"/>
+ <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_KHR"/>
+ <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET"/>
+ <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_ARB"/>
+ <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_EXT"/>
+ <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_KHR"/>
+ <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET"/>
+ <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_ARB"/>
+ <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_EXT"/>
+ <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_KHR"/>
+ <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY"/>
+ <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_EXT"/>
+ <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_KHR"/>
+ <enum value="0x8257" name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum value="0x8258" name="GL_PROGRAM_SEPARABLE"/>
+ <enum value="0x8258" name="GL_PROGRAM_SEPARABLE_EXT"/>
+ <enum value="0x8259" name="GL_ACTIVE_PROGRAM"/>
+ <enum value="0x8259" api="gles2" name="GL_ACTIVE_PROGRAM_EXT" comment="For the OpenGL ES version of EXT_separate_shader_objects"/>
+ <enum value="0x825A" name="GL_PROGRAM_PIPELINE_BINDING"/>
+ <enum value="0x825A" name="GL_PROGRAM_PIPELINE_BINDING_EXT"/>
+ <enum value="0x825B" name="GL_MAX_VIEWPORTS"/>
+ <enum value="0x825C" name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+ <enum value="0x825D" name="GL_VIEWPORT_BOUNDS_RANGE"/>
+ <enum value="0x825E" name="GL_LAYER_PROVOKING_VERTEX"/>
+ <enum value="0x825E" name="GL_LAYER_PROVOKING_VERTEX_EXT"/>
+ <enum value="0x825F" name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+ <enum value="0x8260" name="GL_UNDEFINED_VERTEX"/>
+ <enum value="0x8260" name="GL_UNDEFINED_VERTEX_EXT"/>
+ <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION"/>
+ <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION_ARB"/>
+ <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION_EXT"/>
+ <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION_KHR"/>
+ <enum value="0x8262" name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum value="0x8263" name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum value="0x8264" name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x8265" name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum value="0x8266" name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum value="0x8267" name="GL_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum value="0x8268" name="GL_DEBUG_TYPE_MARKER"/>
+ <enum value="0x8268" name="GL_DEBUG_TYPE_MARKER_KHR"/>
+ <enum value="0x8269" name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+ <enum value="0x8269" name="GL_DEBUG_TYPE_PUSH_GROUP_KHR"/>
+ <enum value="0x826A" name="GL_DEBUG_TYPE_POP_GROUP"/>
+ <enum value="0x826A" name="GL_DEBUG_TYPE_POP_GROUP_KHR"/>
+ <enum value="0x826B" name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+ <enum value="0x826B" name="GL_DEBUG_SEVERITY_NOTIFICATION_KHR"/>
+ <enum value="0x826C" name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum value="0x826C" name="GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum value="0x826D" name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum value="0x826D" name="GL_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum value="0x826E" name="GL_MAX_UNIFORM_LOCATIONS"/>
+ <enum value="0x826F" name="GL_INTERNALFORMAT_SUPPORTED"/>
+ <enum value="0x8270" name="GL_INTERNALFORMAT_PREFERRED"/>
+ <enum value="0x8271" name="GL_INTERNALFORMAT_RED_SIZE"/>
+ <enum value="0x8272" name="GL_INTERNALFORMAT_GREEN_SIZE"/>
+ <enum value="0x8273" name="GL_INTERNALFORMAT_BLUE_SIZE"/>
+ <enum value="0x8274" name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
+ <enum value="0x8275" name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
+ <enum value="0x8276" name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
+ <enum value="0x8277" name="GL_INTERNALFORMAT_SHARED_SIZE"/>
+ <enum value="0x8278" name="GL_INTERNALFORMAT_RED_TYPE"/>
+ <enum value="0x8279" name="GL_INTERNALFORMAT_GREEN_TYPE"/>
+ <enum value="0x827A" name="GL_INTERNALFORMAT_BLUE_TYPE"/>
+ <enum value="0x827B" name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
+ <enum value="0x827C" name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
+ <enum value="0x827D" name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
+ <enum value="0x827E" name="GL_MAX_WIDTH"/>
+ <enum value="0x827F" name="GL_MAX_HEIGHT"/>
+ <enum value="0x8280" name="GL_MAX_DEPTH"/>
+ <enum value="0x8281" name="GL_MAX_LAYERS"/>
+ <enum value="0x8282" name="GL_MAX_COMBINED_DIMENSIONS"/>
+ <enum value="0x8283" name="GL_COLOR_COMPONENTS"/>
+ <enum value="0x8284" name="GL_DEPTH_COMPONENTS"/>
+ <enum value="0x8285" name="GL_STENCIL_COMPONENTS"/>
+ <enum value="0x8286" name="GL_COLOR_RENDERABLE"/>
+ <enum value="0x8287" name="GL_DEPTH_RENDERABLE"/>
+ <enum value="0x8288" name="GL_STENCIL_RENDERABLE"/>
+ <enum value="0x8289" name="GL_FRAMEBUFFER_RENDERABLE"/>
+ <enum value="0x828A" name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
+ <enum value="0x828B" name="GL_FRAMEBUFFER_BLEND"/>
+ <enum value="0x828C" name="GL_READ_PIXELS"/>
+ <enum value="0x828D" name="GL_READ_PIXELS_FORMAT"/>
+ <enum value="0x828E" name="GL_READ_PIXELS_TYPE"/>
+ <enum value="0x828F" name="GL_TEXTURE_IMAGE_FORMAT"/>
+ <enum value="0x8290" name="GL_TEXTURE_IMAGE_TYPE"/>
+ <enum value="0x8291" name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
+ <enum value="0x8292" name="GL_GET_TEXTURE_IMAGE_TYPE"/>
+ <enum value="0x8293" name="GL_MIPMAP"/>
+ <enum value="0x8294" name="GL_MANUAL_GENERATE_MIPMAP"/>
+ <enum value="0x8295" name="GL_AUTO_GENERATE_MIPMAP" comment="Should be deprecated"/>
+ <enum value="0x8296" name="GL_COLOR_ENCODING"/>
+ <enum value="0x8297" name="GL_SRGB_READ"/>
+ <enum value="0x8298" name="GL_SRGB_WRITE"/>
+ <enum value="0x8299" name="GL_SRGB_DECODE_ARB"/>
+ <enum value="0x829A" name="GL_FILTER"/>
+ <enum value="0x829B" name="GL_VERTEX_TEXTURE"/>
+ <enum value="0x829C" name="GL_TESS_CONTROL_TEXTURE"/>
+ <enum value="0x829D" name="GL_TESS_EVALUATION_TEXTURE"/>
+ <enum value="0x829E" name="GL_GEOMETRY_TEXTURE"/>
+ <enum value="0x829F" name="GL_FRAGMENT_TEXTURE"/>
+ <enum value="0x82A0" name="GL_COMPUTE_TEXTURE"/>
+ <enum value="0x82A1" name="GL_TEXTURE_SHADOW"/>
+ <enum value="0x82A2" name="GL_TEXTURE_GATHER"/>
+ <enum value="0x82A3" name="GL_TEXTURE_GATHER_SHADOW"/>
+ <enum value="0x82A4" name="GL_SHADER_IMAGE_LOAD"/>
+ <enum value="0x82A5" name="GL_SHADER_IMAGE_STORE"/>
+ <enum value="0x82A6" name="GL_SHADER_IMAGE_ATOMIC"/>
+ <enum value="0x82A7" name="GL_IMAGE_TEXEL_SIZE"/>
+ <enum value="0x82A8" name="GL_IMAGE_COMPATIBILITY_CLASS"/>
+ <enum value="0x82A9" name="GL_IMAGE_PIXEL_FORMAT"/>
+ <enum value="0x82AA" name="GL_IMAGE_PIXEL_TYPE"/>
+ <unused start="0x82AB" vendor="ARB"/>
+ <enum value="0x82AC" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
+ <enum value="0x82AD" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
+ <enum value="0x82AE" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
+ <enum value="0x82AF" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+ </enums>
+
+ <enums namespace="GL" start="0x82B0" end="0x830F" vendor="ARB" comment="Range reclaimed from ADD on 2012/05/10">
+ <unused start="0x82B0" vendor="ARB"/>
+ <enum value="0x82B1" name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
+ <enum value="0x82B2" name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum value="0x82B3" name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
+ <enum value="0x82B4" name="GL_CLEAR_BUFFER"/>
+ <enum value="0x82B5" name="GL_TEXTURE_VIEW"/>
+ <enum value="0x82B6" name="GL_VIEW_COMPATIBILITY_CLASS"/>
+ <enum value="0x82B7" name="GL_FULL_SUPPORT"/>
+ <enum value="0x82B8" name="GL_CAVEAT_SUPPORT"/>
+ <enum value="0x82B9" name="GL_IMAGE_CLASS_4_X_32"/>
+ <enum value="0x82BA" name="GL_IMAGE_CLASS_2_X_32"/>
+ <enum value="0x82BB" name="GL_IMAGE_CLASS_1_X_32"/>
+ <enum value="0x82BC" name="GL_IMAGE_CLASS_4_X_16"/>
+ <enum value="0x82BD" name="GL_IMAGE_CLASS_2_X_16"/>
+ <enum value="0x82BE" name="GL_IMAGE_CLASS_1_X_16"/>
+ <enum value="0x82BF" name="GL_IMAGE_CLASS_4_X_8"/>
+ <enum value="0x82C0" name="GL_IMAGE_CLASS_2_X_8"/>
+ <enum value="0x82C1" name="GL_IMAGE_CLASS_1_X_8"/>
+ <enum value="0x82C2" name="GL_IMAGE_CLASS_11_11_10"/>
+ <enum value="0x82C3" name="GL_IMAGE_CLASS_10_10_10_2"/>
+ <enum value="0x82C4" name="GL_VIEW_CLASS_128_BITS"/>
+ <enum value="0x82C5" name="GL_VIEW_CLASS_96_BITS"/>
+ <enum value="0x82C6" name="GL_VIEW_CLASS_64_BITS"/>
+ <enum value="0x82C7" name="GL_VIEW_CLASS_48_BITS"/>
+ <enum value="0x82C8" name="GL_VIEW_CLASS_32_BITS"/>
+ <enum value="0x82C9" name="GL_VIEW_CLASS_24_BITS"/>
+ <enum value="0x82CA" name="GL_VIEW_CLASS_16_BITS"/>
+ <enum value="0x82CB" name="GL_VIEW_CLASS_8_BITS"/>
+ <enum value="0x82CC" name="GL_VIEW_CLASS_S3TC_DXT1_RGB"/>
+ <enum value="0x82CD" name="GL_VIEW_CLASS_S3TC_DXT1_RGBA"/>
+ <enum value="0x82CE" name="GL_VIEW_CLASS_S3TC_DXT3_RGBA"/>
+ <enum value="0x82CF" name="GL_VIEW_CLASS_S3TC_DXT5_RGBA"/>
+ <enum value="0x82D0" name="GL_VIEW_CLASS_RGTC1_RED"/>
+ <enum value="0x82D1" name="GL_VIEW_CLASS_RGTC2_RG"/>
+ <enum value="0x82D2" name="GL_VIEW_CLASS_BPTC_UNORM"/>
+ <enum value="0x82D3" name="GL_VIEW_CLASS_BPTC_FLOAT"/>
+ <enum value="0x82D4" name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum value="0x82D5" name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum value="0x82D6" name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum value="0x82D7" name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum value="0x82D8" name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum value="0x82D9" name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum value="0x82DA" name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ <enum value="0x82DB" name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
+ <enum value="0x82DB" name="GL_TEXTURE_VIEW_MIN_LEVEL_EXT"/>
+ <enum value="0x82DC" name="GL_TEXTURE_VIEW_NUM_LEVELS"/>
+ <enum value="0x82DC" name="GL_TEXTURE_VIEW_NUM_LEVELS_EXT"/>
+ <enum value="0x82DD" name="GL_TEXTURE_VIEW_MIN_LAYER"/>
+ <enum value="0x82DD" name="GL_TEXTURE_VIEW_MIN_LAYER_EXT"/>
+ <enum value="0x82DE" name="GL_TEXTURE_VIEW_NUM_LAYERS"/>
+ <enum value="0x82DE" name="GL_TEXTURE_VIEW_NUM_LAYERS_EXT"/>
+ <enum value="0x82DF" name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <enum value="0x82E0" name="GL_BUFFER"/>
+ <enum value="0x82E0" name="GL_BUFFER_KHR"/>
+ <enum value="0x82E1" name="GL_SHADER"/>
+ <enum value="0x82E1" name="GL_SHADER_KHR"/>
+ <enum value="0x82E2" name="GL_PROGRAM"/>
+ <enum value="0x82E2" name="GL_PROGRAM_KHR"/>
+ <enum value="0x82E3" name="GL_QUERY"/>
+ <enum value="0x82E3" name="GL_QUERY_KHR"/>
+ <enum value="0x82E4" name="GL_PROGRAM_PIPELINE"/>
+ <enum value="0x82E5" name="GL_MAX_VERTEX_ATTRIB_STRIDE"/>
+ <enum value="0x82E6" name="GL_SAMPLER"/>
+ <enum value="0x82E6" name="GL_SAMPLER_KHR"/>
+ <enum value="0x82E7" name="GL_DISPLAY_LIST"/>
+ <enum value="0x82E8" name="GL_MAX_LABEL_LENGTH"/>
+ <enum value="0x82E8" name="GL_MAX_LABEL_LENGTH_KHR"/>
+ <enum value="0x82E9" name="GL_NUM_SHADING_LANGUAGE_VERSIONS"/>
+ <enum value="0x82EA" name="GL_QUERY_TARGET"/>
+ <enum value="0x82EB" name="GL_TEXTURE_BINDING"/>
+ <enum value="0x82EC" name="GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB"/>
+ <enum value="0x82ED" name="GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB"/>
+ <enum value="0x82EE" name="GL_VERTICES_SUBMITTED_ARB"/>
+ <enum value="0x82EF" name="GL_PRIMITIVES_SUBMITTED_ARB"/>
+ <enum value="0x82F0" name="GL_VERTEX_SHADER_INVOCATIONS_ARB"/>
+ <enum value="0x82F1" name="GL_TESS_CONTROL_SHADER_PATCHES_ARB"/>
+ <enum value="0x82F2" name="GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB"/>
+ <enum value="0x82F3" name="GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB"/>
+ <enum value="0x82F4" name="GL_FRAGMENT_SHADER_INVOCATIONS_ARB"/>
+ <enum value="0x82F5" name="GL_COMPUTE_SHADER_INVOCATIONS_ARB"/>
+ <enum value="0x82F6" name="GL_CLIPPING_INPUT_PRIMITIVES_ARB"/>
+ <enum value="0x82F7" name="GL_CLIPPING_OUTPUT_PRIMITIVES_ARB"/>
+ <enum value="0x82F8" name="GL_SPARSE_BUFFER_PAGE_SIZE_ARB"/>
+ <enum value="0x82F9" name="GL_MAX_CULL_DISTANCES"/>
+ <enum value="0x82FA" name="GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES"/>
+ <enum value="0x82FB" name="GL_CONTEXT_RELEASE_BEHAVIOR"/>
+ <enum value="0x82FB" name="GL_CONTEXT_RELEASE_BEHAVIOR_KHR"/>
+ <enum value="0x82FC" name="GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH"/>
+ <enum value="0x82FC" name="GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR"/>
+ <unused start="0x82FD" end="0x830F" vendor="ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8310" end="0x832F" vendor="SGI">
+ <enum value="0x8310" name="GL_DEPTH_PASS_INSTRUMENT_SGIX"/>
+ <enum value="0x8311" name="GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX"/>
+ <enum value="0x8312" name="GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX"/>
+ <enum value="0x8313" name="GL_FRAGMENTS_INSTRUMENT_SGIX"/>
+ <enum value="0x8314" name="GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX"/>
+ <enum value="0x8315" name="GL_FRAGMENTS_INSTRUMENT_MAX_SGIX"/>
+ <enum value="0x8316" name="GL_CONVOLUTION_HINT_SGIX"/>
+ <unused start="0x8317" comment="Incomplete extension SGIX_color_matrix_accuracy"/>
+ <!-- <enum value="0x8317" name="GL_COLOR_MATRIX_HINT"/> -->
+ <enum value="0x8318" name="GL_YCRCB_SGIX"/>
+ <enum value="0x8319" name="GL_YCRCBA_SGIX"/>
+ <enum value="0x831A" name="GL_UNPACK_COMPRESSED_SIZE_SGIX"/>
+ <enum value="0x831B" name="GL_PACK_MAX_COMPRESSED_SIZE_SGIX"/>
+ <enum value="0x831C" name="GL_PACK_COMPRESSED_SIZE_SGIX"/>
+ <enum value="0x831D" name="GL_SLIM8U_SGIX"/>
+ <enum value="0x831E" name="GL_SLIM10U_SGIX"/>
+ <enum value="0x831F" name="GL_SLIM12S_SGIX"/>
+ <enum value="0x8320" name="GL_ALPHA_MIN_SGIX"/>
+ <enum value="0x8321" name="GL_ALPHA_MAX_SGIX"/>
+ <enum value="0x8322" name="GL_SCALEBIAS_HINT_SGIX"/>
+ <unused start="0x8323" end="0x8328" comment="Incomplete extension SGIX_fog_layers"/>
+ <!-- <enum value="0x8323" name="GL_FOG_TYPE_SGIX"/> -->
+ <!-- <enum value="0x8324" name="GL_UNIFORM_SGIX"/> -->
+ <!-- <enum value="0x8325" name="GL_LAYERED_SGIX"/> -->
+ <!-- <enum value="0x8326" name="GL_FOG_GROUND_PLANE_SGIX"/> -->
+ <!-- <enum value="0x8327" name="GL_FOG_LAYERS_POINTS_SGIX"/> -->
+ <!-- <enum value="0x8328" name="GL_MAX_FOG_LAYERS_POINTS_SGIX"/> -->
+ <enum value="0x8329" name="GL_ASYNC_MARKER_SGIX"/>
+ <unused start="0x832A" comment="Incomplete extension SGIX_texture_phase"/>
+ <!-- <enum value="0x832A" name="GL_PHASE_SGIX"/> -->
+ <enum value="0x832B" name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
+ <enum value="0x832C" name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum value="0x832D" name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+ <unused start="0x832E" end="0x832F" comment="Incomplete extension SGIX_texture_mipmap_anisotropic"/>
+ <!-- <enum value="0x832E" name="GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX"/> -->
+ <!-- <enum value="0x832F" name="GL_MAX_MIPMAP_ANISOTROPY_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x8330" end="0x833F" vendor="SUN">
+ <enum value="0x8330" name="GL_PIXEL_TRANSFORM_2D_EXT"/>
+ <enum value="0x8331" name="GL_PIXEL_MAG_FILTER_EXT"/>
+ <enum value="0x8332" name="GL_PIXEL_MIN_FILTER_EXT"/>
+ <enum value="0x8333" name="GL_PIXEL_CUBIC_WEIGHT_EXT"/>
+ <enum value="0x8334" name="GL_CUBIC_EXT"/>
+ <enum value="0x8335" name="GL_AVERAGE_EXT"/>
+ <enum value="0x8336" name="GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum value="0x8337" name="GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum value="0x8338" name="GL_PIXEL_TRANSFORM_2D_MATRIX_EXT"/>
+ <unused start="0x8339" end="0x833F" vendor="SUN"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8340" end="0x836F" vendor="SGI">
+ <unused start="0x8340" end="0x8348" comment="Incomplete extension SGIX_cube_map"/>
+ <!-- <enum value="0x8340" name="GL_ENV_MAP_SGIX"/> -->
+ <!-- <enum value="0x8341" name="GL_CUBE_MAP_SGIX"/> -->
+ <!-- <enum value="0x8342" name="GL_CUBE_MAP_ZP_SGIX"/> -->
+ <!-- <enum value="0x8343" name="GL_CUBE_MAP_ZN_SGIX"/> -->
+ <!-- <enum value="0x8344" name="GL_CUBE_MAP_XN_SGIX"/> -->
+ <!-- <enum value="0x8345" name="GL_CUBE_MAP_XP_SGIX"/> -->
+ <!-- <enum value="0x8346" name="GL_CUBE_MAP_YN_SGIX"/> -->
+ <!-- <enum value="0x8347" name="GL_CUBE_MAP_YP_SGIX"/> -->
+ <!-- <enum value="0x8348" name="GL_CUBE_MAP_BINDING_SGIX"/> -->
+ <enum value="0x8349" name="GL_FRAGMENT_MATERIAL_EXT"/>
+ <enum value="0x834A" name="GL_FRAGMENT_NORMAL_EXT"/>
+ <!-- Unfortunately, there was a collision promoting to EXT
+ from SGIX. Use fog_coord's value of 0x8452 instead of
+ the old assigned FRAGMENT_DEPTH_EXT (0x834B). -->
+ <enum value="0x834C" name="GL_FRAGMENT_COLOR_EXT"/>
+ <enum value="0x834D" name="GL_ATTENUATION_EXT"/>
+ <enum value="0x834E" name="GL_SHADOW_ATTENUATION_EXT"/>
+ <enum value="0x834F" name="GL_TEXTURE_APPLICATION_MODE_EXT"/>
+ <enum value="0x8350" name="GL_TEXTURE_LIGHT_EXT"/>
+ <enum value="0x8351" name="GL_TEXTURE_MATERIAL_FACE_EXT"/>
+ <enum value="0x8352" name="GL_TEXTURE_MATERIAL_PARAMETER_EXT"/>
+ <enum value="0x8353" name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum value="0x8354" name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
+ <enum value="0x8355" name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+ <enum value="0x8356" name="GL_PIXEL_GROUP_COLOR_SGIS"/>
+ <unused start="0x8357" end="0x8359" comment="Incomplete extension SGIX_pixel_texture_bits"/>
+ <!-- <enum value="0x8357" name="GL_COLOR_TO_TEXTURE_COORD_SGIX"/> -->
+ <!-- <enum value="0x8358" name="GL_COLOR_BIT_PATTERN_SGIX"/> -->
+ <!-- <enum value="0x8359" name="GL_COLOR_VALUE_SGIX"/> -->
+ <unused start="0x835A" comment="Incomplete extension SGIX_pixel_texture_lod"/>
+ <!-- <enum value="0x835A" name="GL_PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX"/> -->
+ <enum value="0x835B" name="GL_LINE_QUALITY_HINT_SGIX"/>
+ <enum value="0x835C" name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum value="0x835D" name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum value="0x835E" name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum value="0x835F" name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum value="0x8360" name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum value="0x8361" name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+ <enum value="0x8362" name="GL_UNSIGNED_BYTE_2_3_3_REV"/>
+ <enum value="0x8362" name="GL_UNSIGNED_BYTE_2_3_3_REV_EXT"/>
+ <enum value="0x8363" name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum value="0x8363" name="GL_UNSIGNED_SHORT_5_6_5_EXT"/>
+ <enum value="0x8364" name="GL_UNSIGNED_SHORT_5_6_5_REV"/>
+ <enum value="0x8364" name="GL_UNSIGNED_SHORT_5_6_5_REV_EXT"/>
+ <enum value="0x8365" name="GL_UNSIGNED_SHORT_4_4_4_4_REV"/>
+ <enum value="0x8365" name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
+ <enum value="0x8365" name="GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG"/>
+ <enum value="0x8366" name="GL_UNSIGNED_SHORT_1_5_5_5_REV"/>
+ <enum value="0x8366" name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
+ <enum value="0x8367" name="GL_UNSIGNED_INT_8_8_8_8_REV"/>
+ <enum value="0x8367" name="GL_UNSIGNED_INT_8_8_8_8_REV_EXT"/>
+ <enum value="0x8368" name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum value="0x8368" name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT"/>
+ <enum value="0x8369" name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum value="0x836A" name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum value="0x836B" name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ <unused start="0x836C" end="0x836E" comment="Incomplete extension SGIX_fog_texture"/>
+ <!-- <enum value="0x836C" name="GL_FRAGMENT_FOG_SGIX"/> -->
+ <!-- <enum value="0x836D" name="GL_TEXTURE_FOG_SGIX"/> -->
+ <!-- <enum value="0x836E" name="GL_FOG_PATCHY_FACTOR_SGIX"/> -->
+ <unused start="0x836F" comment="Incomplete extension SGIX_fog_factor_to_alpha"/>
+ <!-- <enum value="0x836F" name="GL_FOG_FACTOR_TO_ALPHA_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x8370" end="0x837F" vendor="HP">
+ <!-- NOTE: IBM is using values in this range, because of a
+ bobble when an employee left DEC for IBM at the same
+ time as they were assigned the range. their registry
+ became inconsistent. It's unknown whether HP has any
+ conflicts. They have never reported using any values in
+ this range. Lesson: assigned ranges belong to vendors,
+ not engineers! -->
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT"/>
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT_ARB"/>
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT_IBM"/>
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT_OES"/>
+ <unused start="0x8371" end="0x837F" vendor="HP"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8380" end="0x839F" vendor="IBM">
+ <unused start="0x8380" end="0x839F" vendor="IBM"/>
+ </enums>
+
+ <enums namespace="GL" start="0x83A0" end="0x83BF" vendor="S3">
+ <enum value="0x83A0" name="GL_RGB_S3TC"/>
+ <enum value="0x83A1" name="GL_RGB4_S3TC"/>
+ <enum value="0x83A2" name="GL_RGBA_S3TC"/>
+ <enum value="0x83A3" name="GL_RGBA4_S3TC"/>
+ <enum value="0x83A4" name="GL_RGBA_DXT5_S3TC"/>
+ <enum value="0x83A5" name="GL_RGBA4_DXT5_S3TC"/>
+ <unused start="0x83A6" end="0x83BF" vendor="S3"/>
+ </enums>
+
+ <enums namespace="GL" start="0x83C0" end="0x83EF" vendor="SGI" comment="Most of this could be reclaimed">
+ <unused start="0x83C0" end="0x83CA" comment="Withdrawn extension SGIS_multitexture"/>
+ <!-- <enum value="0x83C0" name="GL_SELECTED_TEXTURE_SGIS"/> -->
+ <!-- <enum value="0x83C1" name="GL_SELECTED_TEXTURE_COORD_SET_SGIS"/> -->
+ <!-- <enum value="0x83C2" name="GL_SELECTED_TEXTURE_TRANSFORM_SGIS"/> -->
+ <!-- <enum value="0x83C3" name="GL_MAX_TEXTURES_SGIS"/> -->
+ <!-- <enum value="0x83C4" name="GL_MAX_TEXTURE_COORD_SETS_SGIS"/> -->
+ <!-- <enum value="0x83C5" name="GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS"/> -->
+ <!-- <enum value="0x83C6" name="GL_TEXTURE_ENV_COORD_SET_SGIS"/> -->
+ <!-- <enum value="0x83C7" name="GL_TEXTURE0_SGIS"/> -->
+ <!-- <enum value="0x83C8" name="GL_TEXTURE1_SGIS"/> -->
+ <!-- <enum value="0x83C9" name="GL_TEXTURE2_SGIS"/> -->
+ <!-- <enum value="0x83CA" name="GL_TEXTURE3_SGIS"/> -->
+ <unused start="0x83CB" end="0x83E5" vendor="SGI"/>
+ <unused start="0x83E6" end="0x83E9" comment="Incomplete extension SGIX_bali_g_instruments"/>
+ <!-- <enum value="0x83E6" name="GL_BALI_NUM_TRIS_CULLED_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83E7" name="GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83E8" name="GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83E9" name="GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT_SGIX"/> -->
+ <unused start="0x83EA" end="0x83EC" comment="Incomplete extension SGIX_bali_r_instruments"/>
+ <!-- <enum value="0x83EA" name="GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83EB" name="GL_BALI_DEPTH_PASS_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83EC" name="GL_BALI_R_CHIP_COUNT_SGIX"/> -->
+ <unused start="0x83ED" comment="Incomplete extension SGIX_occlusion_instrument"/>
+ <!-- <enum value="0x83ED" name="GL_OCCLUSION_INSTRUMENT_SGIX"/> -->
+ <enum value="0x83EE" name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum value="0x83EF" name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ </enums>
+
+ <enums namespace="GL" start="0x83F0" end="0x83FF" vendor="INTEL">
+ <!-- This block was reclaimed from NTP, who never shipped
+ it, and reassigned to Intel. -->
+ <enum value="0x83F0" name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
+ <enum value="0x83F1" name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+ <enum value="0x83F2" name="GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE"/>
+ <enum value="0x83F2" name="GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"/>
+ <enum value="0x83F3" name="GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE"/>
+ <enum value="0x83F3" name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"/>
+ <enum value="0x83F4" name="GL_PARALLEL_ARRAYS_INTEL"/>
+ <enum value="0x83F5" name="GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F6" name="GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F7" name="GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F8" name="GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F9" name="GL_PERFQUERY_DONOT_FLUSH_INTEL"/>
+ <enum value="0x83FA" name="GL_PERFQUERY_FLUSH_INTEL"/>
+ <enum value="0x83FB" name="GL_PERFQUERY_WAIT_INTEL"/>
+ <unused start="0x83FC" end="0x83FE" vendor="INTEL"/>
+ <enum value="0x83FF" name="GL_TEXTURE_MEMORY_LAYOUT_INTEL"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8400" end="0x846F" vendor="SGI">
+ <enum value="0x8400" name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum value="0x8401" name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum value="0x8402" name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
+ <enum value="0x8403" name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
+ <enum value="0x8404" name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
+ <enum value="0x8405" name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+ <enum value="0x8406" name="GL_CURRENT_RASTER_NORMAL_SGIX"/>
+ <enum value="0x8407" name="GL_LIGHT_ENV_MODE_SGIX"/>
+ <enum value="0x8408" name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum value="0x8409" name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ <enum value="0x840A" name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum value="0x840B" name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum value="0x840C" name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum value="0x840D" name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum value="0x840E" name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum value="0x840F" name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum value="0x8410" name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum value="0x8411" name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum value="0x8412" name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum value="0x8413" name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <unused start="0x8414" end="0x842B" vendor="SGI"/>
+ <enum value="0x842C" name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum value="0x842D" name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum value="0x842E" name="GL_RESAMPLE_REPLICATE_SGIX"/>
+ <enum value="0x842F" name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
+ <enum value="0x8430" name="GL_RESAMPLE_DECIMATE_SGIX"/>
+ <unused start="0x8431" end="0x8435" vendor="SGI"/>
+ <!-- Incomplete extension SGIX_fragment_lighting -->
+ <!-- <enum value="0x8436" name="GL_EYE_SPACE_SGIX"/> -->
+ <!-- <enum value="0x8437" name="GL_TANGENT_SPACE_SGIX"/> -->
+ <!-- <enum value="0x8438" name="GL_OBJECT_SPACE_SGIX"/> -->
+ <!-- <enum value="0x8439" name="GL_TANGENT_ARRAY_SGIX"/> -->
+ <!-- <enum value="0x843A" name="GL_BINORMAL_ARRAY_SGIX"/> -->
+ <!-- <enum value="0x843B" name="GL_CURRENT_TANGENT_SGIX"/> -->
+ <!-- <enum value="0x843C" name="GL_CURRENT_BINORMAL_SGIX"/> -->
+ <!-- <enum value="0x843D" name="GL_FRAGMENT_LIGHT_SPACE_SGIX"/> -->
+ <!-- <enum value="0x843E" name="GL_TANGENT_ARRAY_TYPE_SGIX"/> -->
+ <!-- <enum value="0x843F" name="GL_TANGENT_ARRAY_STRIDE_SGIX"/> -->
+ <!-- <enum value="0x8440" name="GL_TANGENT_ARRAY_COUNT_SGIX"/> -->
+ <!-- <enum value="0x8441" name="GL_BINORMAL_ARRAY_TYPE_SGIX"/> -->
+ <!-- <enum value="0x8442" name="GL_BINORMAL_ARRAY_STRIDE_SGIX"/> -->
+ <!-- <enum value="0x8443" name="GL_BINORMAL_ARRAY_COUNT_SGIX"/> -->
+ <!-- <enum value="0x8444" name="GL_TANGENT_ARRAY_POINTER_SGIX"/> -->
+ <!-- <enum value="0x8445" name="GL_BINORMAL_ARRAY_POINTER_SGIX"/> -->
+ <!-- <enum value="0x8446" name="GL_MAP1_TANGENT_SGIX"/> -->
+ <!-- <enum value="0x8447" name="GL_MAP2_TANGENT_SGIX"/> -->
+ <!-- <enum value="0x8448" name="GL_MAP1_BINORMAL_SGIX"/> -->
+ <!-- <enum value="0x8449" name="GL_MAP2_BINORMAL_SGIX"/> -->
+ <enum value="0x8439" name="GL_TANGENT_ARRAY_EXT"/>
+ <enum value="0x843A" name="GL_BINORMAL_ARRAY_EXT"/>
+ <enum value="0x843B" name="GL_CURRENT_TANGENT_EXT"/>
+ <enum value="0x843C" name="GL_CURRENT_BINORMAL_EXT"/>
+ <unused start="0x844D" vendor="SGI"/>
+ <enum value="0x843E" name="GL_TANGENT_ARRAY_TYPE_EXT"/>
+ <enum value="0x843F" name="GL_TANGENT_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8440" name="GL_BINORMAL_ARRAY_TYPE_EXT"/>
+ <enum value="0x8441" name="GL_BINORMAL_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8442" name="GL_TANGENT_ARRAY_POINTER_EXT"/>
+ <enum value="0x8443" name="GL_BINORMAL_ARRAY_POINTER_EXT"/>
+ <enum value="0x8444" name="GL_MAP1_TANGENT_EXT"/>
+ <enum value="0x8445" name="GL_MAP2_TANGENT_EXT"/>
+ <enum value="0x8446" name="GL_MAP1_BINORMAL_EXT"/>
+ <enum value="0x8447" name="GL_MAP2_BINORMAL_EXT"/>
+ <unused start="0x8448" end="0x8449" comment="Incomplete extension SGIX_fragment_lighting"/>
+ <unused start="0x844A" end="0x844C" comment="Incomplete extension SGIX_bali_timer_instruments"/>
+ <!-- <enum value="0x844A" name="GL_BALI_GEOM_TIMER_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x844B" name="GL_BALI_RASTER_TIMER_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x844C" name="GL_BALI_INSTRUMENT_TIME_UNIT_SGIX"/> -->
+ <enum value="0x844D" name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
+ <enum value="0x844E" name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
+ <enum value="0x844F" name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+ <!-- 0x8450-0x845F range brokered for Id Software -->
+ <enum value="0x8450" name="GL_FOG_COORDINATE_SOURCE"/>
+ <enum value="0x8450" name="GL_FOG_COORDINATE_SOURCE_EXT"/>
+ <enum value="0x8450" name="GL_FOG_COORD_SRC" alias="GL_FOG_COORDINATE_SOURCE"/>
+ <enum value="0x8451" name="GL_FOG_COORDINATE"/>
+ <enum value="0x8451" name="GL_FOG_COORD" alias="GL_FOG_COORDINATE"/>
+ <enum value="0x8451" name="GL_FOG_COORDINATE_EXT"/>
+ <enum value="0x8452" name="GL_FRAGMENT_DEPTH"/>
+ <enum value="0x8452" name="GL_FRAGMENT_DEPTH_EXT"/>
+ <enum value="0x8453" name="GL_CURRENT_FOG_COORDINATE"/>
+ <enum value="0x8453" name="GL_CURRENT_FOG_COORD" alias="GL_CURRENT_FOG_COORDINATE"/>
+ <enum value="0x8453" name="GL_CURRENT_FOG_COORDINATE_EXT"/>
+ <enum value="0x8454" name="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum value="0x8454" name="GL_FOG_COORDINATE_ARRAY_TYPE_EXT"/>
+ <enum value="0x8454" name="GL_FOG_COORD_ARRAY_TYPE" alias="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum value="0x8455" name="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum value="0x8455" name="GL_FOG_COORDINATE_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8455" name="GL_FOG_COORD_ARRAY_STRIDE" alias="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum value="0x8456" name="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum value="0x8456" name="GL_FOG_COORDINATE_ARRAY_POINTER_EXT"/>
+ <enum value="0x8456" name="GL_FOG_COORD_ARRAY_POINTER" alias="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum value="0x8457" name="GL_FOG_COORDINATE_ARRAY"/>
+ <enum value="0x8457" name="GL_FOG_COORDINATE_ARRAY_EXT"/>
+ <enum value="0x8457" name="GL_FOG_COORD_ARRAY" alias="GL_FOG_COORDINATE_ARRAY"/>
+ <enum value="0x8458" name="GL_COLOR_SUM"/>
+ <enum value="0x8458" name="GL_COLOR_SUM_ARB"/>
+ <enum value="0x8458" name="GL_COLOR_SUM_EXT"/>
+ <enum value="0x8459" name="GL_CURRENT_SECONDARY_COLOR"/>
+ <enum value="0x8459" name="GL_CURRENT_SECONDARY_COLOR_EXT"/>
+ <enum value="0x845A" name="GL_SECONDARY_COLOR_ARRAY_SIZE"/>
+ <enum value="0x845A" name="GL_SECONDARY_COLOR_ARRAY_SIZE_EXT"/>
+ <enum value="0x845B" name="GL_SECONDARY_COLOR_ARRAY_TYPE"/>
+ <enum value="0x845B" name="GL_SECONDARY_COLOR_ARRAY_TYPE_EXT"/>
+ <enum value="0x845C" name="GL_SECONDARY_COLOR_ARRAY_STRIDE"/>
+ <enum value="0x845C" name="GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum value="0x845D" name="GL_SECONDARY_COLOR_ARRAY_POINTER"/>
+ <enum value="0x845D" name="GL_SECONDARY_COLOR_ARRAY_POINTER_EXT"/>
+ <enum value="0x845E" name="GL_SECONDARY_COLOR_ARRAY"/>
+ <enum value="0x845E" name="GL_SECONDARY_COLOR_ARRAY_EXT"/>
+ <enum value="0x845F" name="GL_CURRENT_RASTER_SECONDARY_COLOR"/>
+ <unused start="0x8460" end="0x846B" comment="Incomplete extension SGIX_icc_texture"/>
+ <!-- <enum value="0x8460" name="GL_RGB_ICC_SGIX"/> -->
+ <!-- <enum value="0x8461" name="GL_RGBA_ICC_SGIX"/> -->
+ <!-- <enum value="0x8462" name="GL_ALPHA_ICC_SGIX"/> -->
+ <!-- <enum value="0x8463" name="GL_LUMINANCE_ICC_SGIX"/> -->
+ <!-- <enum value="0x8464" name="GL_INTENSITY_ICC_SGIX"/> -->
+ <!-- <enum value="0x8465" name="GL_LUMINANCE_ALPHA_ICC_SGIX"/> -->
+ <!-- <enum value="0x8466" name="GL_R5_G6_B5_ICC_SGIX"/> -->
+ <!-- <enum value="0x8467" name="GL_R5_G6_B5_A8_ICC_SGIX"/> -->
+ <!-- <enum value="0x8468" name="GL_ALPHA16_ICC_SGIX"/> -->
+ <!-- <enum value="0x8469" name="GL_LUMINANCE16_ICC_SGIX"/> -->
+ <!-- <enum value="0x846A" name="GL_INTENSITY16_ICC_SGIX"/> -->
+ <!-- <enum value="0x846B" name="GL_LUMINANCE16_ALPHA8_ICC_SGIX"/> -->
+ <unused start="0x846C" vendor="SGI"/>
+ <enum value="0x846D" name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum value="0x846E" name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <unused start="0x846F" vendor="SGI"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8470" end="0x848F" vendor="AMD">
+ <unused start="0x8470" end="0x848F" vendor="AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8490" end="0x849F" vendor="REND">
+ <enum value="0x8490" name="GL_SCREEN_COORDINATES_REND"/>
+ <enum value="0x8491" name="GL_INVERTED_SCREEN_W_REND"/>
+ <unused start="0x8492" end="0x849F" vendor="REND"/>
+ </enums>
+
+ <enums namespace="GL" start="0x84A0" end="0x84BF" vendor="AMD">
+ <unused start="0x84A0" end="0x84BF" vendor="AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x84C0" end="0x84EF" vendor="ARB">
+ <enum value="0x84C0" name="GL_TEXTURE0"/>
+ <enum value="0x84C0" name="GL_TEXTURE0_ARB"/>
+ <enum value="0x84C1" name="GL_TEXTURE1"/>
+ <enum value="0x84C1" name="GL_TEXTURE1_ARB"/>
+ <enum value="0x84C2" name="GL_TEXTURE2"/>
+ <enum value="0x84C2" name="GL_TEXTURE2_ARB"/>
+ <enum value="0x84C3" name="GL_TEXTURE3"/>
+ <enum value="0x84C3" name="GL_TEXTURE3_ARB"/>
+ <enum value="0x84C4" name="GL_TEXTURE4"/>
+ <enum value="0x84C4" name="GL_TEXTURE4_ARB"/>
+ <enum value="0x84C5" name="GL_TEXTURE5"/>
+ <enum value="0x84C5" name="GL_TEXTURE5_ARB"/>
+ <enum value="0x84C6" name="GL_TEXTURE6"/>
+ <enum value="0x84C6" name="GL_TEXTURE6_ARB"/>
+ <enum value="0x84C7" name="GL_TEXTURE7"/>
+ <enum value="0x84C7" name="GL_TEXTURE7_ARB"/>
+ <enum value="0x84C8" name="GL_TEXTURE8"/>
+ <enum value="0x84C8" name="GL_TEXTURE8_ARB"/>
+ <enum value="0x84C9" name="GL_TEXTURE9"/>
+ <enum value="0x84C9" name="GL_TEXTURE9_ARB"/>
+ <enum value="0x84CA" name="GL_TEXTURE10"/>
+ <enum value="0x84CA" name="GL_TEXTURE10_ARB"/>
+ <enum value="0x84CB" name="GL_TEXTURE11"/>
+ <enum value="0x84CB" name="GL_TEXTURE11_ARB"/>
+ <enum value="0x84CC" name="GL_TEXTURE12"/>
+ <enum value="0x84CC" name="GL_TEXTURE12_ARB"/>
+ <enum value="0x84CD" name="GL_TEXTURE13"/>
+ <enum value="0x84CD" name="GL_TEXTURE13_ARB"/>
+ <enum value="0x84CE" name="GL_TEXTURE14"/>
+ <enum value="0x84CE" name="GL_TEXTURE14_ARB"/>
+ <enum value="0x84CF" name="GL_TEXTURE15"/>
+ <enum value="0x84CF" name="GL_TEXTURE15_ARB"/>
+ <enum value="0x84D0" name="GL_TEXTURE16"/>
+ <enum value="0x84D0" name="GL_TEXTURE16_ARB"/>
+ <enum value="0x84D1" name="GL_TEXTURE17"/>
+ <enum value="0x84D1" name="GL_TEXTURE17_ARB"/>
+ <enum value="0x84D2" name="GL_TEXTURE18"/>
+ <enum value="0x84D2" name="GL_TEXTURE18_ARB"/>
+ <enum value="0x84D3" name="GL_TEXTURE19"/>
+ <enum value="0x84D3" name="GL_TEXTURE19_ARB"/>
+ <enum value="0x84D4" name="GL_TEXTURE20"/>
+ <enum value="0x84D4" name="GL_TEXTURE20_ARB"/>
+ <enum value="0x84D5" name="GL_TEXTURE21"/>
+ <enum value="0x84D5" name="GL_TEXTURE21_ARB"/>
+ <enum value="0x84D6" name="GL_TEXTURE22"/>
+ <enum value="0x84D6" name="GL_TEXTURE22_ARB"/>
+ <enum value="0x84D7" name="GL_TEXTURE23"/>
+ <enum value="0x84D7" name="GL_TEXTURE23_ARB"/>
+ <enum value="0x84D8" name="GL_TEXTURE24"/>
+ <enum value="0x84D8" name="GL_TEXTURE24_ARB"/>
+ <enum value="0x84D9" name="GL_TEXTURE25"/>
+ <enum value="0x84D9" name="GL_TEXTURE25_ARB"/>
+ <enum value="0x84DA" name="GL_TEXTURE26"/>
+ <enum value="0x84DA" name="GL_TEXTURE26_ARB"/>
+ <enum value="0x84DB" name="GL_TEXTURE27"/>
+ <enum value="0x84DB" name="GL_TEXTURE27_ARB"/>
+ <enum value="0x84DC" name="GL_TEXTURE28"/>
+ <enum value="0x84DC" name="GL_TEXTURE28_ARB"/>
+ <enum value="0x84DD" name="GL_TEXTURE29"/>
+ <enum value="0x84DD" name="GL_TEXTURE29_ARB"/>
+ <enum value="0x84DE" name="GL_TEXTURE30"/>
+ <enum value="0x84DE" name="GL_TEXTURE30_ARB"/>
+ <enum value="0x84DF" name="GL_TEXTURE31"/>
+ <enum value="0x84DF" name="GL_TEXTURE31_ARB"/>
+ <enum value="0x84E0" name="GL_ACTIVE_TEXTURE"/>
+ <enum value="0x84E0" name="GL_ACTIVE_TEXTURE_ARB"/>
+ <enum value="0x84E1" name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum value="0x84E1" name="GL_CLIENT_ACTIVE_TEXTURE_ARB"/>
+ <enum value="0x84E2" name="GL_MAX_TEXTURE_UNITS"/>
+ <enum value="0x84E2" name="GL_MAX_TEXTURE_UNITS_ARB"/>
+ <enum value="0x84E3" name="GL_TRANSPOSE_MODELVIEW_MATRIX"/>
+ <enum value="0x84E3" name="GL_TRANSPOSE_MODELVIEW_MATRIX_ARB"/>
+ <enum value="0x84E3" name="GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV"/>
+ <enum value="0x84E4" name="GL_TRANSPOSE_PROJECTION_MATRIX"/>
+ <enum value="0x84E4" name="GL_TRANSPOSE_PROJECTION_MATRIX_ARB"/>
+ <enum value="0x84E4" name="GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV"/>
+ <enum value="0x84E5" name="GL_TRANSPOSE_TEXTURE_MATRIX"/>
+ <enum value="0x84E5" name="GL_TRANSPOSE_TEXTURE_MATRIX_ARB"/>
+ <enum value="0x84E6" name="GL_TRANSPOSE_COLOR_MATRIX"/>
+ <enum value="0x84E6" name="GL_TRANSPOSE_COLOR_MATRIX_ARB"/>
+ <enum value="0x84E7" name="GL_SUBTRACT"/>
+ <enum value="0x84E7" name="GL_SUBTRACT_ARB"/>
+ <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE_EXT"/>
+ <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE_OES"/>
+ <enum value="0x84E9" name="GL_COMPRESSED_ALPHA"/>
+ <enum value="0x84E9" name="GL_COMPRESSED_ALPHA_ARB"/>
+ <enum value="0x84EA" name="GL_COMPRESSED_LUMINANCE"/>
+ <enum value="0x84EA" name="GL_COMPRESSED_LUMINANCE_ARB"/>
+ <enum value="0x84EB" name="GL_COMPRESSED_LUMINANCE_ALPHA"/>
+ <enum value="0x84EB" name="GL_COMPRESSED_LUMINANCE_ALPHA_ARB"/>
+ <enum value="0x84EC" name="GL_COMPRESSED_INTENSITY"/>
+ <enum value="0x84EC" name="GL_COMPRESSED_INTENSITY_ARB"/>
+ <enum value="0x84ED" name="GL_COMPRESSED_RGB"/>
+ <enum value="0x84ED" name="GL_COMPRESSED_RGB_ARB"/>
+ <enum value="0x84EE" name="GL_COMPRESSED_RGBA"/>
+ <enum value="0x84EE" name="GL_COMPRESSED_RGBA_ARB"/>
+ <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT"/>
+ <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x84F0" end="0x855F" vendor="NV">
+ <enum value="0x84F0" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum value="0x84F1" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum value="0x84F2" name="GL_ALL_COMPLETED_NV"/>
+ <enum value="0x84F3" name="GL_FENCE_STATUS_NV"/>
+ <enum value="0x84F4" name="GL_FENCE_CONDITION_NV"/>
+ <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE"/>
+ <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE_ARB"/>
+ <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE"/>
+ <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE_ARB"/>
+ <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE_NV"/>
+ <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE"/>
+ <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_ARB"/>
+ <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE"/>
+ <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB"/>
+ <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE_NV"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL_EXT"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL_NV"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL_OES"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_EXT"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_NV"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_OES"/>
+ <unused start="0x84FB" end="0x84FC" vendor="NV"/>
+ <enum value="0x84FD" name="GL_MAX_TEXTURE_LOD_BIAS"/>
+ <enum value="0x84FD" name="GL_MAX_TEXTURE_LOD_BIAS_EXT"/>
+ <enum value="0x84FE" name="GL_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <enum value="0x84FF" name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL"/>
+ <enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
+ <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS"/>
+ <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ <enum value="0x8502" name="GL_MODELVIEW1_STACK_DEPTH_EXT"/>
+ <enum value="0x8503" name="GL_COMBINE4_NV"/>
+ <enum value="0x8504" name="GL_MAX_SHININESS_NV"/>
+ <enum value="0x8505" name="GL_MAX_SPOT_EXPONENT_NV"/>
+ <enum value="0x8506" name="GL_MODELVIEW1_MATRIX_EXT"/>
+ <enum value="0x8507" name="GL_INCR_WRAP"/>
+ <enum value="0x8507" name="GL_INCR_WRAP_EXT"/>
+ <enum value="0x8507" name="GL_INCR_WRAP_OES"/>
+ <enum value="0x8508" name="GL_DECR_WRAP"/>
+ <enum value="0x8508" name="GL_DECR_WRAP_EXT"/>
+ <enum value="0x8508" name="GL_DECR_WRAP_OES"/>
+ <enum value="0x8509" name="GL_VERTEX_WEIGHTING_EXT"/>
+ <enum value="0x850A" name="GL_MODELVIEW1_ARB"/>
+ <enum value="0x850A" name="GL_MODELVIEW1_EXT"/>
+ <enum value="0x850B" name="GL_CURRENT_VERTEX_WEIGHT_EXT"/>
+ <enum value="0x850C" name="GL_VERTEX_WEIGHT_ARRAY_EXT"/>
+ <enum value="0x850D" name="GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT"/>
+ <enum value="0x850E" name="GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT"/>
+ <enum value="0x850F" name="GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8510" name="GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_ARB"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_EXT"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_NV"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_OES"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_ARB"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_EXT"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_NV"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_OES"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_EXT"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_OES"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_ARB"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_EXT"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_OES"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES"/>
+ <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP"/>
+ <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARB"/>
+ <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_EXT"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES"/>
+ <enum value="0x851D" name="GL_VERTEX_ARRAY_RANGE_APPLE"/>
+ <enum value="0x851D" name="GL_VERTEX_ARRAY_RANGE_NV"/>
+ <enum value="0x851E" name="GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE"/>
+ <enum value="0x851E" name="GL_VERTEX_ARRAY_RANGE_LENGTH_NV"/>
+ <enum value="0x851F" name="GL_VERTEX_ARRAY_RANGE_VALID_NV"/>
+ <enum value="0x851F" name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+ <enum value="0x8520" name="GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV"/>
+ <enum value="0x8521" name="GL_VERTEX_ARRAY_RANGE_POINTER_APPLE"/>
+ <enum value="0x8521" name="GL_VERTEX_ARRAY_RANGE_POINTER_NV"/>
+ <enum value="0x8522" name="GL_REGISTER_COMBINERS_NV"/>
+ <enum value="0x8523" name="GL_VARIABLE_A_NV"/>
+ <enum value="0x8524" name="GL_VARIABLE_B_NV"/>
+ <enum value="0x8525" name="GL_VARIABLE_C_NV"/>
+ <enum value="0x8526" name="GL_VARIABLE_D_NV"/>
+ <enum value="0x8527" name="GL_VARIABLE_E_NV"/>
+ <enum value="0x8528" name="GL_VARIABLE_F_NV"/>
+ <enum value="0x8529" name="GL_VARIABLE_G_NV"/>
+ <enum value="0x852A" name="GL_CONSTANT_COLOR0_NV"/>
+ <enum value="0x852B" name="GL_CONSTANT_COLOR1_NV"/>
+ <enum value="0x852C" name="GL_PRIMARY_COLOR_NV"/>
+ <enum value="0x852D" name="GL_SECONDARY_COLOR_NV"/>
+ <enum value="0x852E" name="GL_SPARE0_NV"/>
+ <enum value="0x852F" name="GL_SPARE1_NV"/>
+ <enum value="0x8530" name="GL_DISCARD_NV"/>
+ <enum value="0x8531" name="GL_E_TIMES_F_NV"/>
+ <enum value="0x8532" name="GL_SPARE0_PLUS_SECONDARY_COLOR_NV"/>
+ <enum value="0x8533" name="GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV"/>
+ <enum value="0x8534" name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+ <enum value="0x8535" name="GL_PER_STAGE_CONSTANTS_NV"/>
+ <enum value="0x8536" name="GL_UNSIGNED_IDENTITY_NV"/>
+ <enum value="0x8537" name="GL_UNSIGNED_INVERT_NV"/>
+ <enum value="0x8538" name="GL_EXPAND_NORMAL_NV"/>
+ <enum value="0x8539" name="GL_EXPAND_NEGATE_NV"/>
+ <enum value="0x853A" name="GL_HALF_BIAS_NORMAL_NV"/>
+ <enum value="0x853B" name="GL_HALF_BIAS_NEGATE_NV"/>
+ <enum value="0x853C" name="GL_SIGNED_IDENTITY_NV"/>
+ <enum value="0x853D" name="GL_SIGNED_NEGATE_NV"/>
+ <enum value="0x853E" name="GL_SCALE_BY_TWO_NV"/>
+ <enum value="0x853F" name="GL_SCALE_BY_FOUR_NV"/>
+ <enum value="0x8540" name="GL_SCALE_BY_ONE_HALF_NV"/>
+ <enum value="0x8541" name="GL_BIAS_BY_NEGATIVE_ONE_HALF_NV"/>
+ <enum value="0x8542" name="GL_COMBINER_INPUT_NV"/>
+ <enum value="0x8543" name="GL_COMBINER_MAPPING_NV"/>
+ <enum value="0x8544" name="GL_COMBINER_COMPONENT_USAGE_NV"/>
+ <enum value="0x8545" name="GL_COMBINER_AB_DOT_PRODUCT_NV"/>
+ <enum value="0x8546" name="GL_COMBINER_CD_DOT_PRODUCT_NV"/>
+ <enum value="0x8547" name="GL_COMBINER_MUX_SUM_NV"/>
+ <enum value="0x8548" name="GL_COMBINER_SCALE_NV"/>
+ <enum value="0x8549" name="GL_COMBINER_BIAS_NV"/>
+ <enum value="0x854A" name="GL_COMBINER_AB_OUTPUT_NV"/>
+ <enum value="0x854B" name="GL_COMBINER_CD_OUTPUT_NV"/>
+ <enum value="0x854C" name="GL_COMBINER_SUM_OUTPUT_NV"/>
+ <enum value="0x854D" name="GL_MAX_GENERAL_COMBINERS_NV"/>
+ <enum value="0x854E" name="GL_NUM_GENERAL_COMBINERS_NV"/>
+ <enum value="0x854F" name="GL_COLOR_SUM_CLAMP_NV"/>
+ <enum value="0x8550" name="GL_COMBINER0_NV"/>
+ <enum value="0x8551" name="GL_COMBINER1_NV"/>
+ <enum value="0x8552" name="GL_COMBINER2_NV"/>
+ <enum value="0x8553" name="GL_COMBINER3_NV"/>
+ <enum value="0x8554" name="GL_COMBINER4_NV"/>
+ <enum value="0x8555" name="GL_COMBINER5_NV"/>
+ <enum value="0x8556" name="GL_COMBINER6_NV"/>
+ <enum value="0x8557" name="GL_COMBINER7_NV"/>
+ <enum value="0x8558" name="GL_PRIMITIVE_RESTART_NV"/>
+ <enum value="0x8559" name="GL_PRIMITIVE_RESTART_INDEX_NV"/>
+ <enum value="0x855A" name="GL_FOG_DISTANCE_MODE_NV"/>
+ <enum value="0x855B" name="GL_EYE_RADIAL_NV"/>
+ <enum value="0x855C" name="GL_EYE_PLANE_ABSOLUTE_NV"/>
+ <enum value="0x855D" name="GL_EMBOSS_LIGHT_NV"/>
+ <enum value="0x855E" name="GL_EMBOSS_CONSTANT_NV"/>
+ <enum value="0x855F" name="GL_EMBOSS_MAP_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8560" end="0x856F" vendor="ZiiLabs">
+ <enum value="0x8560" name="GL_RED_MIN_CLAMP_INGR"/>
+ <enum value="0x8561" name="GL_GREEN_MIN_CLAMP_INGR"/>
+ <enum value="0x8562" name="GL_BLUE_MIN_CLAMP_INGR"/>
+ <enum value="0x8563" name="GL_ALPHA_MIN_CLAMP_INGR"/>
+ <enum value="0x8564" name="GL_RED_MAX_CLAMP_INGR"/>
+ <enum value="0x8565" name="GL_GREEN_MAX_CLAMP_INGR"/>
+ <enum value="0x8566" name="GL_BLUE_MAX_CLAMP_INGR"/>
+ <enum value="0x8567" name="GL_ALPHA_MAX_CLAMP_INGR"/>
+ <enum value="0x8568" name="GL_INTERLACE_READ_INGR"/>
+ <unused start="0x8569" end="0x856F" vendor="ZiiLabs"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8570" end="0x859F" group="RegisterCombinerPname" vendor="AMD/NV">
+ <enum value="0x8570" name="GL_COMBINE"/>
+ <enum value="0x8570" name="GL_COMBINE_ARB"/>
+ <enum value="0x8570" name="GL_COMBINE_EXT"/>
+ <enum value="0x8571" name="GL_COMBINE_RGB"/>
+ <enum value="0x8571" name="GL_COMBINE_RGB_ARB"/>
+ <enum value="0x8571" name="GL_COMBINE_RGB_EXT"/>
+ <enum value="0x8572" name="GL_COMBINE_ALPHA"/>
+ <enum value="0x8572" name="GL_COMBINE_ALPHA_ARB"/>
+ <enum value="0x8572" name="GL_COMBINE_ALPHA_EXT"/>
+ <enum value="0x8573" name="GL_RGB_SCALE"/>
+ <enum value="0x8573" name="GL_RGB_SCALE_ARB"/>
+ <enum value="0x8573" name="GL_RGB_SCALE_EXT"/>
+ <enum value="0x8574" name="GL_ADD_SIGNED"/>
+ <enum value="0x8574" name="GL_ADD_SIGNED_ARB"/>
+ <enum value="0x8574" name="GL_ADD_SIGNED_EXT"/>
+ <enum value="0x8575" name="GL_INTERPOLATE"/>
+ <enum value="0x8575" name="GL_INTERPOLATE_ARB"/>
+ <enum value="0x8575" name="GL_INTERPOLATE_EXT"/>
+ <enum value="0x8576" name="GL_CONSTANT"/>
+ <enum value="0x8576" name="GL_CONSTANT_ARB"/>
+ <enum value="0x8576" name="GL_CONSTANT_EXT"/>
+ <enum value="0x8576" name="GL_CONSTANT_NV"/>
+ <enum value="0x8577" name="GL_PRIMARY_COLOR"/>
+ <enum value="0x8577" name="GL_PRIMARY_COLOR_ARB"/>
+ <enum value="0x8577" name="GL_PRIMARY_COLOR_EXT"/>
+ <enum value="0x8578" name="GL_PREVIOUS"/>
+ <enum value="0x8578" name="GL_PREVIOUS_ARB"/>
+ <enum value="0x8578" name="GL_PREVIOUS_EXT"/>
+ <unused start="0x8579" end="0x857F" comment="Additional combiner enums only"/>
+ <enum value="0x8580" name="GL_SOURCE0_RGB"/>
+ <enum value="0x8580" name="GL_SOURCE0_RGB_ARB"/>
+ <enum value="0x8580" name="GL_SOURCE0_RGB_EXT"/>
+ <enum value="0x8580" name="GL_SRC0_RGB" alias="GL_SOURCE0_RGB"/>
+ <enum value="0x8581" name="GL_SOURCE1_RGB"/>
+ <enum value="0x8581" name="GL_SOURCE1_RGB_ARB"/>
+ <enum value="0x8581" name="GL_SOURCE1_RGB_EXT"/>
+ <enum value="0x8581" name="GL_SRC1_RGB" alias="GL_SOURCE1_RGB"/>
+ <enum value="0x8582" name="GL_SOURCE2_RGB"/>
+ <enum value="0x8582" name="GL_SOURCE2_RGB_ARB"/>
+ <enum value="0x8582" name="GL_SOURCE2_RGB_EXT"/>
+ <enum value="0x8582" name="GL_SRC2_RGB" alias="GL_SOURCE2_RGB"/>
+ <enum value="0x8583" name="GL_SOURCE3_RGB_NV"/>
+ <unused start="0x8584" end="0x8587" comment="Additional combiner enums only"/>
+ <enum value="0x8588" name="GL_SOURCE0_ALPHA"/>
+ <enum value="0x8588" name="GL_SOURCE0_ALPHA_ARB"/>
+ <enum value="0x8588" name="GL_SOURCE0_ALPHA_EXT"/>
+ <enum value="0x8588" name="GL_SRC0_ALPHA" alias="GL_SOURCE0_ALPHA"/>
+ <enum value="0x8589" name="GL_SOURCE1_ALPHA"/>
+ <enum value="0x8589" name="GL_SOURCE1_ALPHA_ARB"/>
+ <enum value="0x8589" name="GL_SOURCE1_ALPHA_EXT"/>
+ <enum value="0x8589" name="GL_SRC1_ALPHA" alias="GL_SOURCE1_ALPHA"/>
+ <enum value="0x858A" name="GL_SOURCE2_ALPHA"/>
+ <enum value="0x858A" name="GL_SOURCE2_ALPHA_ARB"/>
+ <enum value="0x858A" name="GL_SOURCE2_ALPHA_EXT"/>
+ <enum value="0x858A" name="GL_SRC2_ALPHA" alias="GL_SOURCE2_ALPHA"/>
+ <enum value="0x858B" name="GL_SOURCE3_ALPHA_NV"/>
+ <unused start="0x858C" end="0x858F" comment="Additional combiner enums only"/>
+ <enum value="0x8590" name="GL_OPERAND0_RGB"/>
+ <enum value="0x8590" name="GL_OPERAND0_RGB_ARB"/>
+ <enum value="0x8590" name="GL_OPERAND0_RGB_EXT"/>
+ <enum value="0x8591" name="GL_OPERAND1_RGB"/>
+ <enum value="0x8591" name="GL_OPERAND1_RGB_ARB"/>
+ <enum value="0x8591" name="GL_OPERAND1_RGB_EXT"/>
+ <enum value="0x8592" name="GL_OPERAND2_RGB"/>
+ <enum value="0x8592" name="GL_OPERAND2_RGB_ARB"/>
+ <enum value="0x8592" name="GL_OPERAND2_RGB_EXT"/>
+ <enum value="0x8593" name="GL_OPERAND3_RGB_NV"/>
+ <unused start="0x8594" end="0x8597" comment="Additional combiner enums only"/>
+ <enum value="0x8598" name="GL_OPERAND0_ALPHA"/>
+ <enum value="0x8598" name="GL_OPERAND0_ALPHA_ARB"/>
+ <enum value="0x8598" name="GL_OPERAND0_ALPHA_EXT"/>
+ <enum value="0x8599" name="GL_OPERAND1_ALPHA"/>
+ <enum value="0x8599" name="GL_OPERAND1_ALPHA_ARB"/>
+ <enum value="0x8599" name="GL_OPERAND1_ALPHA_EXT"/>
+ <enum value="0x859A" name="GL_OPERAND2_ALPHA"/>
+ <enum value="0x859A" name="GL_OPERAND2_ALPHA_ARB"/>
+ <enum value="0x859A" name="GL_OPERAND2_ALPHA_EXT"/>
+ <enum value="0x859B" name="GL_OPERAND3_ALPHA_NV"/>
+ <unused start="0x859C" end="0x859F" comment="Additional combiner enums only"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85A0" end="0x85AF" vendor="SGI">
+ <enum value="0x85A0" name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum value="0x85A1" name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum value="0x85A2" name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
+ <enum value="0x85A3" name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
+ <enum value="0x85A4" name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+ <unused start="0x85A5" end="0x85AD" comment="Incomplete extension SGIS_color_range"/>
+ <!-- <enum value="0x85A5" name="GL_EXTENDED_RANGE_SGIS"/> -->
+ <!-- <enum value="0x85A6" name="GL_MIN_RED_SGIS"/> -->
+ <!-- <enum value="0x85A7" name="GL_MAX_RED_SGIS"/> -->
+ <!-- <enum value="0x85A8" name="GL_MIN_GREEN_SGIS"/> -->
+ <!-- <enum value="0x85A9" name="GL_MAX_GREEN_SGIS"/> -->
+ <!-- <enum value="0x85AA" name="GL_MIN_BLUE_SGIS"/> -->
+ <!-- <enum value="0x85AB" name="GL_MAX_BLUE_SGIS"/> -->
+ <!-- <enum value="0x85AC" name="GL_MIN_ALPHA_SGIS"/> -->
+ <!-- <enum value="0x85AD" name="GL_MAX_ALPHA_SGIS"/> -->
+ <enum value="0x85AE" name="GL_PERTURB_EXT"/>
+ <enum value="0x85AF" name="GL_TEXTURE_NORMAL_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85B0" end="0x85BF" vendor="APPLE">
+ <enum value="0x85B0" name="GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE"/>
+ <enum value="0x85B1" name="GL_TRANSFORM_HINT_APPLE"/>
+ <enum value="0x85B2" name="GL_UNPACK_CLIENT_STORAGE_APPLE"/>
+ <enum value="0x85B3" name="GL_BUFFER_OBJECT_APPLE"/>
+ <enum value="0x85B4" name="GL_STORAGE_CLIENT_APPLE"/>
+ <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING"/>
+ <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING_APPLE"/>
+ <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING_OES"/>
+ <unused start="0x85B6" vendor="APPLE" comment="Unknown extension (Khronos bug 632)"/>
+ <!-- <enum value="0x85B6" name="GL_TEXTURE_MINIMIZE_STORAGE_APPLE"/> -->
+ <enum value="0x85B7" name="GL_TEXTURE_RANGE_LENGTH_APPLE"/>
+ <enum value="0x85B8" name="GL_TEXTURE_RANGE_POINTER_APPLE"/>
+ <enum value="0x85B9" name="GL_YCBCR_422_APPLE"/>
+ <enum value="0x85BA" name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
+ <enum value="0x85BA" name="GL_UNSIGNED_SHORT_8_8_MESA"/>
+ <enum value="0x85BB" name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
+ <enum value="0x85BB" name="GL_UNSIGNED_SHORT_8_8_REV_MESA"/>
+ <enum value="0x85BC" name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+ <enum value="0x85BD" name="GL_STORAGE_PRIVATE_APPLE"/>
+ <enum value="0x85BE" name="GL_STORAGE_CACHED_APPLE"/>
+ <enum value="0x85BF" name="GL_STORAGE_SHARED_APPLE"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85C0" end="0x85CF" vendor="SUN">
+ <enum value="0x85C0" name="GL_REPLACEMENT_CODE_ARRAY_SUN"/>
+ <enum value="0x85C1" name="GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN"/>
+ <enum value="0x85C2" name="GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN"/>
+ <enum value="0x85C3" name="GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN"/>
+ <enum value="0x85C4" name="GL_R1UI_V3F_SUN"/>
+ <enum value="0x85C5" name="GL_R1UI_C4UB_V3F_SUN"/>
+ <enum value="0x85C6" name="GL_R1UI_C3F_V3F_SUN"/>
+ <enum value="0x85C7" name="GL_R1UI_N3F_V3F_SUN"/>
+ <enum value="0x85C8" name="GL_R1UI_C4F_N3F_V3F_SUN"/>
+ <enum value="0x85C9" name="GL_R1UI_T2F_V3F_SUN"/>
+ <enum value="0x85CA" name="GL_R1UI_T2F_N3F_V3F_SUN"/>
+ <enum value="0x85CB" name="GL_R1UI_T2F_C4F_N3F_V3F_SUN"/>
+ <enum value="0x85CC" name="GL_SLICE_ACCUM_SUN"/>
+ <unused start="0x85CD" end="0x85CF" vendor="SUN"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85D0" end="0x85DF" vendor="ZiiLabs" comment="3Dlabs private extension for Autodesk">
+ <unused start="0x85D0" end="0x85D1" comment="Unknown 3Dlabs private extension for Autodesk (but we know the enum values)"/>
+ <!-- <enum value="0x85D0" name="GL_FACET_NORMAL_AUTODESK"/> -->
+ <!-- <enum value="0x85D1" name="GL_FACET_NORMAL_ARRAY_AUTODESK"/> -->
+ <unused start="0x85D2" end="0x85DF" vendor="ZiiLabs"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85E0" end="0x85FF" vendor="SGI">
+ <unused start="0x85E0" end="0x85FB" comment="Incomplete extension SGIX_texture_range"/>
+ <!-- <enum value="0x85E0" name="GL_RGB_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E1" name="GL_RGBA_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E2" name="GL_ALPHA_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E3" name="GL_LUMINANCE_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E4" name="GL_INTENSITY_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E5" name="GL_LUMINANCE_ALPHA_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E6" name="GL_RGB16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E7" name="GL_RGBA16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E8" name="GL_ALPHA16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E9" name="GL_LUMINANCE16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85EA" name="GL_INTENSITY16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85EB" name="GL_LUMINANCE16_ALPHA16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85EC" name="GL_RGB_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85ED" name="GL_RGBA_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85EE" name="GL_ALPHA_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85EF" name="GL_LUMINANCE_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F0" name="GL_INTENSITY_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F1" name="GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F2" name="GL_RGB16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F3" name="GL_RGBA16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F4" name="GL_ALPHA16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F5" name="GL_LUMINANCE16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F6" name="GL_INTENSITY16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F7" name="GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F8" name="GL_MIN_LUMINANCE_SGIS"/> -->
+ <!-- <enum value="0x85F9" name="GL_MAX_LUMINANCE_SGIS"/> -->
+ <!-- <enum value="0x85FA" name="GL_MIN_INTENSITY_SGIS"/> -->
+ <!-- <enum value="0x85FB" name="GL_MAX_INTENSITY_SGIS"/> -->
+ <unused start="0x85FC" end="0x85FF" vendor="SGI"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8600" end="0x861F" vendor="SUN">
+ <unused start="0x8600" end="0x8613" vendor="SUN"/>
+ <enum value="0x8614" name="GL_QUAD_MESH_SUN"/>
+ <enum value="0x8615" name="GL_TRIANGLE_MESH_SUN"/>
+ <unused start="0x8614" end="0x861F" vendor="SUN"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8620" end="0x867F" vendor="NV">
+ <enum value="0x8620" name="GL_VERTEX_PROGRAM_ARB"/>
+ <enum value="0x8620" name="GL_VERTEX_PROGRAM_NV"/>
+ <enum value="0x8621" name="GL_VERTEX_STATE_PROGRAM_NV"/>
+ <enum value="0x8622" name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <enum value="0x8622" name="GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB"/>
+ <enum value="0x8623" name="GL_ATTRIB_ARRAY_SIZE_NV"/>
+ <enum value="0x8623" name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <enum value="0x8623" name="GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB"/>
+ <enum value="0x8624" name="GL_ATTRIB_ARRAY_STRIDE_NV"/>
+ <enum value="0x8624" name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <enum value="0x8624" name="GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB"/>
+ <enum value="0x8625" name="GL_ATTRIB_ARRAY_TYPE_NV"/>
+ <enum value="0x8625" name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <enum value="0x8625" name="GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB"/>
+ <enum value="0x8626" name="GL_CURRENT_ATTRIB_NV"/>
+ <enum value="0x8626" name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <enum value="0x8626" name="GL_CURRENT_VERTEX_ATTRIB_ARB"/>
+ <enum value="0x8627" name="GL_PROGRAM_LENGTH_ARB"/>
+ <enum value="0x8627" name="GL_PROGRAM_LENGTH_NV"/>
+ <enum value="0x8628" name="GL_PROGRAM_STRING_ARB"/>
+ <enum value="0x8628" name="GL_PROGRAM_STRING_NV"/>
+ <enum value="0x8629" name="GL_MODELVIEW_PROJECTION_NV"/>
+ <enum value="0x862A" name="GL_IDENTITY_NV"/>
+ <enum value="0x862B" name="GL_INVERSE_NV"/>
+ <enum value="0x862C" name="GL_TRANSPOSE_NV"/>
+ <enum value="0x862D" name="GL_INVERSE_TRANSPOSE_NV"/>
+ <enum value="0x862E" name="GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"/>
+ <enum value="0x862E" name="GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV"/>
+ <enum value="0x862F" name="GL_MAX_PROGRAM_MATRICES_ARB"/>
+ <enum value="0x862F" name="GL_MAX_TRACK_MATRICES_NV"/>
+ <enum value="0x8630" name="GL_MATRIX0_NV"/>
+ <enum value="0x8631" name="GL_MATRIX1_NV"/>
+ <enum value="0x8632" name="GL_MATRIX2_NV"/>
+ <enum value="0x8633" name="GL_MATRIX3_NV"/>
+ <enum value="0x8634" name="GL_MATRIX4_NV"/>
+ <enum value="0x8635" name="GL_MATRIX5_NV"/>
+ <enum value="0x8636" name="GL_MATRIX6_NV"/>
+ <enum value="0x8637" name="GL_MATRIX7_NV"/>
+ <unused start="0x8638" end="0x863F" comment="Reserved for MATRIX{8-15}_NV"/>
+ <!-- <enum value="0x8638" name="GL_MATRIX8_NV"/> -->
+ <!-- <enum value="0x8639" name="GL_MATRIX9_NV"/> -->
+ <!-- <enum value="0x863A" name="GL_MATRIX10_NV"/> -->
+ <!-- <enum value="0x863B" name="GL_MATRIX11_NV"/> -->
+ <!-- <enum value="0x863C" name="GL_MATRIX12_NV"/> -->
+ <!-- <enum value="0x863D" name="GL_MATRIX13_NV"/> -->
+ <!-- <enum value="0x863E" name="GL_MATRIX14_NV"/> -->
+ <!-- <enum value="0x863F" name="GL_MATRIX15_NV"/> -->
+ <enum value="0x8640" name="GL_CURRENT_MATRIX_STACK_DEPTH_ARB"/>
+ <enum value="0x8640" name="GL_CURRENT_MATRIX_STACK_DEPTH_NV"/>
+ <enum value="0x8641" name="GL_CURRENT_MATRIX_ARB"/>
+ <enum value="0x8641" name="GL_CURRENT_MATRIX_NV"/>
+ <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+ <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE_ARB"/>
+ <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE_NV"/>
+ <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE" alias="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+ <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE_ARB"/>
+ <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE_EXT"/>
+ <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
+ <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE_ARB"/>
+ <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE_NV"/>
+ <enum value="0x8644" name="GL_PROGRAM_PARAMETER_NV"/>
+ <enum value="0x8645" name="GL_ATTRIB_ARRAY_POINTER_NV"/>
+ <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+ <enum value="0x8646" name="GL_PROGRAM_TARGET_NV"/>
+ <enum value="0x8647" name="GL_PROGRAM_RESIDENT_NV"/>
+ <enum value="0x8648" name="GL_TRACK_MATRIX_NV"/>
+ <enum value="0x8649" name="GL_TRACK_MATRIX_TRANSFORM_NV"/>
+ <enum value="0x864A" name="GL_VERTEX_PROGRAM_BINDING_NV"/>
+ <enum value="0x864B" name="GL_PROGRAM_ERROR_POSITION_ARB"/>
+ <enum value="0x864B" name="GL_PROGRAM_ERROR_POSITION_NV"/>
+ <enum value="0x864C" name="GL_OFFSET_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x864D" name="GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum value="0x864E" name="GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x864F" name="GL_DEPTH_CLAMP"/>
+ <enum value="0x864F" name="GL_DEPTH_CLAMP_NV"/>
+ <enum value="0x8650" name="GL_VERTEX_ATTRIB_ARRAY0_NV"/>
+ <enum value="0x8651" name="GL_VERTEX_ATTRIB_ARRAY1_NV"/>
+ <enum value="0x8652" name="GL_VERTEX_ATTRIB_ARRAY2_NV"/>
+ <enum value="0x8653" name="GL_VERTEX_ATTRIB_ARRAY3_NV"/>
+ <enum value="0x8654" name="GL_VERTEX_ATTRIB_ARRAY4_NV"/>
+ <enum value="0x8655" name="GL_VERTEX_ATTRIB_ARRAY5_NV"/>
+ <enum value="0x8656" name="GL_VERTEX_ATTRIB_ARRAY6_NV"/>
+ <enum value="0x8657" name="GL_VERTEX_ATTRIB_ARRAY7_NV"/>
+ <enum value="0x8658" name="GL_VERTEX_ATTRIB_ARRAY8_NV"/>
+ <enum value="0x8659" name="GL_VERTEX_ATTRIB_ARRAY9_NV"/>
+ <enum value="0x865A" name="GL_VERTEX_ATTRIB_ARRAY10_NV"/>
+ <enum value="0x865B" name="GL_VERTEX_ATTRIB_ARRAY11_NV"/>
+ <enum value="0x865C" name="GL_VERTEX_ATTRIB_ARRAY12_NV"/>
+ <enum value="0x865D" name="GL_VERTEX_ATTRIB_ARRAY13_NV"/>
+ <enum value="0x865E" name="GL_VERTEX_ATTRIB_ARRAY14_NV"/>
+ <enum value="0x865F" name="GL_VERTEX_ATTRIB_ARRAY15_NV"/>
+ <enum value="0x8660" name="GL_MAP1_VERTEX_ATTRIB0_4_NV"/>
+ <enum value="0x8661" name="GL_MAP1_VERTEX_ATTRIB1_4_NV"/>
+ <enum value="0x8662" name="GL_MAP1_VERTEX_ATTRIB2_4_NV"/>
+ <enum value="0x8663" name="GL_MAP1_VERTEX_ATTRIB3_4_NV"/>
+ <enum value="0x8664" name="GL_MAP1_VERTEX_ATTRIB4_4_NV"/>
+ <enum value="0x8665" name="GL_MAP1_VERTEX_ATTRIB5_4_NV"/>
+ <enum value="0x8666" name="GL_MAP1_VERTEX_ATTRIB6_4_NV"/>
+ <enum value="0x8667" name="GL_MAP1_VERTEX_ATTRIB7_4_NV"/>
+ <enum value="0x8668" name="GL_MAP1_VERTEX_ATTRIB8_4_NV"/>
+ <enum value="0x8669" name="GL_MAP1_VERTEX_ATTRIB9_4_NV"/>
+ <enum value="0x866A" name="GL_MAP1_VERTEX_ATTRIB10_4_NV"/>
+ <enum value="0x866B" name="GL_MAP1_VERTEX_ATTRIB11_4_NV"/>
+ <enum value="0x866C" name="GL_MAP1_VERTEX_ATTRIB12_4_NV"/>
+ <enum value="0x866D" name="GL_MAP1_VERTEX_ATTRIB13_4_NV"/>
+ <enum value="0x866E" name="GL_MAP1_VERTEX_ATTRIB14_4_NV"/>
+ <enum value="0x866F" name="GL_MAP1_VERTEX_ATTRIB15_4_NV"/>
+ <enum value="0x8670" name="GL_MAP2_VERTEX_ATTRIB0_4_NV"/>
+ <enum value="0x8671" name="GL_MAP2_VERTEX_ATTRIB1_4_NV"/>
+ <enum value="0x8672" name="GL_MAP2_VERTEX_ATTRIB2_4_NV"/>
+ <enum value="0x8673" name="GL_MAP2_VERTEX_ATTRIB3_4_NV"/>
+ <enum value="0x8674" name="GL_MAP2_VERTEX_ATTRIB4_4_NV"/>
+ <enum value="0x8675" name="GL_MAP2_VERTEX_ATTRIB5_4_NV"/>
+ <enum value="0x8676" name="GL_MAP2_VERTEX_ATTRIB6_4_NV"/>
+ <enum value="0x8677" name="GL_MAP2_VERTEX_ATTRIB7_4_NV"/>
+ <enum value="0x8677" name="GL_PROGRAM_BINDING_ARB" comment="NOT an alias. Accidental reuse of GL_MAP2_VERTEX_ATTRIB7_4_NV"/>
+ <enum value="0x8678" name="GL_MAP2_VERTEX_ATTRIB8_4_NV"/>
+ <enum value="0x8679" name="GL_MAP2_VERTEX_ATTRIB9_4_NV"/>
+ <enum value="0x867A" name="GL_MAP2_VERTEX_ATTRIB10_4_NV"/>
+ <enum value="0x867B" name="GL_MAP2_VERTEX_ATTRIB11_4_NV"/>
+ <enum value="0x867C" name="GL_MAP2_VERTEX_ATTRIB12_4_NV"/>
+ <enum value="0x867D" name="GL_MAP2_VERTEX_ATTRIB13_4_NV"/>
+ <enum value="0x867E" name="GL_MAP2_VERTEX_ATTRIB14_4_NV"/>
+ <enum value="0x867F" name="GL_MAP2_VERTEX_ATTRIB15_4_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8680" end="0x869F" vendor="Pixelfusion">
+ <unused start="0x8680" end="0x869F" vendor="Pixelfusion"/>
+ </enums>
+
+ <enums namespace="GL" start="0x86A0" end="0x86AF" vendor="ARB">
+ <enum value="0x86A0" name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE"/>
+ <enum value="0x86A0" name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB"/>
+ <enum value="0x86A1" name="GL_TEXTURE_COMPRESSED"/>
+ <enum value="0x86A1" name="GL_TEXTURE_COMPRESSED_ARB"/>
+ <enum value="0x86A2" name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum value="0x86A2" name="GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <enum value="0x86A3" name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum value="0x86A3" name="GL_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <enum value="0x86A4" name="GL_MAX_VERTEX_UNITS_ARB"/>
+ <enum value="0x86A4" name="GL_MAX_VERTEX_UNITS_OES"/>
+ <enum value="0x86A5" name="GL_ACTIVE_VERTEX_UNITS_ARB"/>
+ <enum value="0x86A6" name="GL_WEIGHT_SUM_UNITY_ARB"/>
+ <enum value="0x86A7" name="GL_VERTEX_BLEND_ARB"/>
+ <enum value="0x86A8" name="GL_CURRENT_WEIGHT_ARB"/>
+ <enum value="0x86A9" name="GL_WEIGHT_ARRAY_TYPE_ARB"/>
+ <enum value="0x86A9" name="GL_WEIGHT_ARRAY_TYPE_OES"/>
+ <enum value="0x86AA" name="GL_WEIGHT_ARRAY_STRIDE_ARB"/>
+ <enum value="0x86AA" name="GL_WEIGHT_ARRAY_STRIDE_OES"/>
+ <enum value="0x86AB" name="GL_WEIGHT_ARRAY_SIZE_ARB"/>
+ <enum value="0x86AB" name="GL_WEIGHT_ARRAY_SIZE_OES"/>
+ <enum value="0x86AC" name="GL_WEIGHT_ARRAY_POINTER_ARB"/>
+ <enum value="0x86AC" name="GL_WEIGHT_ARRAY_POINTER_OES"/>
+ <enum value="0x86AD" name="GL_WEIGHT_ARRAY_ARB"/>
+ <enum value="0x86AD" name="GL_WEIGHT_ARRAY_OES"/>
+ <enum value="0x86AE" name="GL_DOT3_RGB"/>
+ <enum value="0x86AE" name="GL_DOT3_RGB_ARB"/>
+ <enum value="0x86AF" name="GL_DOT3_RGBA"/>
+ <enum value="0x86AF" name="GL_DOT3_RGBA_ARB"/>
+ <enum value="0x86AF" name="GL_DOT3_RGBA_IMG"/>
+ </enums>
+
+ <enums namespace="GL" start="0x86B0" end="0x86BF" vendor="3DFX">
+ <enum value="0x86B0" name="GL_COMPRESSED_RGB_FXT1_3DFX"/>
+ <enum value="0x86B1" name="GL_COMPRESSED_RGBA_FXT1_3DFX"/>
+ <enum value="0x86B2" name="GL_MULTISAMPLE_3DFX"/>
+ <enum value="0x86B3" name="GL_SAMPLE_BUFFERS_3DFX"/>
+ <enum value="0x86B4" name="GL_SAMPLES_3DFX"/>
+ <unused start="0x86B5" end="0x86BF" vendor="3DFX"/>
+ </enums>
+
+ <enums namespace="GL" start="0x86C0" end="0x871F" vendor="NV">
+ <enum value="0x86C0" name="GL_EVAL_2D_NV"/>
+ <enum value="0x86C1" name="GL_EVAL_TRIANGULAR_2D_NV"/>
+ <enum value="0x86C2" name="GL_MAP_TESSELLATION_NV"/>
+ <enum value="0x86C3" name="GL_MAP_ATTRIB_U_ORDER_NV"/>
+ <enum value="0x86C4" name="GL_MAP_ATTRIB_V_ORDER_NV"/>
+ <enum value="0x86C5" name="GL_EVAL_FRACTIONAL_TESSELLATION_NV"/>
+ <enum value="0x86C6" name="GL_EVAL_VERTEX_ATTRIB0_NV"/>
+ <enum value="0x86C7" name="GL_EVAL_VERTEX_ATTRIB1_NV"/>
+ <enum value="0x86C8" name="GL_EVAL_VERTEX_ATTRIB2_NV"/>
+ <enum value="0x86C9" name="GL_EVAL_VERTEX_ATTRIB3_NV"/>
+ <enum value="0x86CA" name="GL_EVAL_VERTEX_ATTRIB4_NV"/>
+ <enum value="0x86CB" name="GL_EVAL_VERTEX_ATTRIB5_NV"/>
+ <enum value="0x86CC" name="GL_EVAL_VERTEX_ATTRIB6_NV"/>
+ <enum value="0x86CD" name="GL_EVAL_VERTEX_ATTRIB7_NV"/>
+ <enum value="0x86CE" name="GL_EVAL_VERTEX_ATTRIB8_NV"/>
+ <enum value="0x86CF" name="GL_EVAL_VERTEX_ATTRIB9_NV"/>
+ <enum value="0x86D0" name="GL_EVAL_VERTEX_ATTRIB10_NV"/>
+ <enum value="0x86D1" name="GL_EVAL_VERTEX_ATTRIB11_NV"/>
+ <enum value="0x86D2" name="GL_EVAL_VERTEX_ATTRIB12_NV"/>
+ <enum value="0x86D3" name="GL_EVAL_VERTEX_ATTRIB13_NV"/>
+ <enum value="0x86D4" name="GL_EVAL_VERTEX_ATTRIB14_NV"/>
+ <enum value="0x86D5" name="GL_EVAL_VERTEX_ATTRIB15_NV"/>
+ <enum value="0x86D6" name="GL_MAX_MAP_TESSELLATION_NV"/>
+ <enum value="0x86D7" name="GL_MAX_RATIONAL_EVAL_ORDER_NV"/>
+ <enum value="0x86D8" name="GL_MAX_PROGRAM_PATCH_ATTRIBS_NV"/>
+ <enum value="0x86D9" name="GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV"/>
+ <enum value="0x86DA" name="GL_UNSIGNED_INT_S8_S8_8_8_NV"/>
+ <enum value="0x86DB" name="GL_UNSIGNED_INT_8_8_S8_S8_REV_NV"/>
+ <enum value="0x86DC" name="GL_DSDT_MAG_INTENSITY_NV"/>
+ <enum value="0x86DD" name="GL_SHADER_CONSISTENT_NV"/>
+ <enum value="0x86DE" name="GL_TEXTURE_SHADER_NV"/>
+ <enum value="0x86DF" name="GL_SHADER_OPERATION_NV"/>
+ <enum value="0x86E0" name="GL_CULL_MODES_NV"/>
+ <enum value="0x86E1" name="GL_OFFSET_TEXTURE_MATRIX_NV"/>
+ <enum value="0x86E1" name="GL_OFFSET_TEXTURE_2D_MATRIX_NV" alias="GL_OFFSET_TEXTURE_MATRIX_NV"/>
+ <enum value="0x86E2" name="GL_OFFSET_TEXTURE_SCALE_NV"/>
+ <enum value="0x86E2" name="GL_OFFSET_TEXTURE_2D_SCALE_NV" alias="GL_OFFSET_TEXTURE_SCALE_NV"/>
+ <enum value="0x86E3" name="GL_OFFSET_TEXTURE_BIAS_NV"/>
+ <enum value="0x86E3" name="GL_OFFSET_TEXTURE_2D_BIAS_NV" alias="GL_OFFSET_TEXTURE_BIAS_NV"/>
+ <enum value="0x86E4" name="GL_PREVIOUS_TEXTURE_INPUT_NV"/>
+ <enum value="0x86E5" name="GL_CONST_EYE_NV"/>
+ <enum value="0x86E6" name="GL_PASS_THROUGH_NV"/>
+ <enum value="0x86E7" name="GL_CULL_FRAGMENT_NV"/>
+ <enum value="0x86E8" name="GL_OFFSET_TEXTURE_2D_NV"/>
+ <enum value="0x86E9" name="GL_DEPENDENT_AR_TEXTURE_2D_NV"/>
+ <enum value="0x86EA" name="GL_DEPENDENT_GB_TEXTURE_2D_NV"/>
+ <enum value="0x86EB" name="GL_SURFACE_STATE_NV"/>
+ <enum value="0x86EC" name="GL_DOT_PRODUCT_NV"/>
+ <enum value="0x86ED" name="GL_DOT_PRODUCT_DEPTH_REPLACE_NV"/>
+ <enum value="0x86EE" name="GL_DOT_PRODUCT_TEXTURE_2D_NV"/>
+ <enum value="0x86EF" name="GL_DOT_PRODUCT_TEXTURE_3D_NV"/>
+ <enum value="0x86F0" name="GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV"/>
+ <enum value="0x86F1" name="GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV"/>
+ <enum value="0x86F2" name="GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV"/>
+ <enum value="0x86F3" name="GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV"/>
+ <enum value="0x86F4" name="GL_HILO_NV"/>
+ <enum value="0x86F5" name="GL_DSDT_NV"/>
+ <enum value="0x86F6" name="GL_DSDT_MAG_NV"/>
+ <enum value="0x86F7" name="GL_DSDT_MAG_VIB_NV"/>
+ <enum value="0x86F8" name="GL_HILO16_NV"/>
+ <enum value="0x86F9" name="GL_SIGNED_HILO_NV"/>
+ <enum value="0x86FA" name="GL_SIGNED_HILO16_NV"/>
+ <enum value="0x86FB" name="GL_SIGNED_RGBA_NV"/>
+ <enum value="0x86FC" name="GL_SIGNED_RGBA8_NV"/>
+ <enum value="0x86FD" name="GL_SURFACE_REGISTERED_NV"/>
+ <enum value="0x86FE" name="GL_SIGNED_RGB_NV"/>
+ <enum value="0x86FF" name="GL_SIGNED_RGB8_NV"/>
+ <enum value="0x8700" name="GL_SURFACE_MAPPED_NV"/>
+ <enum value="0x8701" name="GL_SIGNED_LUMINANCE_NV"/>
+ <enum value="0x8702" name="GL_SIGNED_LUMINANCE8_NV"/>
+ <enum value="0x8703" name="GL_SIGNED_LUMINANCE_ALPHA_NV"/>
+ <enum value="0x8704" name="GL_SIGNED_LUMINANCE8_ALPHA8_NV"/>
+ <enum value="0x8705" name="GL_SIGNED_ALPHA_NV"/>
+ <enum value="0x8706" name="GL_SIGNED_ALPHA8_NV"/>
+ <enum value="0x8707" name="GL_SIGNED_INTENSITY_NV"/>
+ <enum value="0x8708" name="GL_SIGNED_INTENSITY8_NV"/>
+ <enum value="0x8709" name="GL_DSDT8_NV"/>
+ <enum value="0x870A" name="GL_DSDT8_MAG8_NV"/>
+ <enum value="0x870B" name="GL_DSDT8_MAG8_INTENSITY8_NV"/>
+ <enum value="0x870C" name="GL_SIGNED_RGB_UNSIGNED_ALPHA_NV"/>
+ <enum value="0x870D" name="GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV"/>
+ <enum value="0x870E" name="GL_HI_SCALE_NV"/>
+ <enum value="0x870F" name="GL_LO_SCALE_NV"/>
+ <enum value="0x8710" name="GL_DS_SCALE_NV"/>
+ <enum value="0x8711" name="GL_DT_SCALE_NV"/>
+ <enum value="0x8712" name="GL_MAGNITUDE_SCALE_NV"/>
+ <enum value="0x8713" name="GL_VIBRANCE_SCALE_NV"/>
+ <enum value="0x8714" name="GL_HI_BIAS_NV"/>
+ <enum value="0x8715" name="GL_LO_BIAS_NV"/>
+ <enum value="0x8716" name="GL_DS_BIAS_NV"/>
+ <enum value="0x8717" name="GL_DT_BIAS_NV"/>
+ <enum value="0x8718" name="GL_MAGNITUDE_BIAS_NV"/>
+ <enum value="0x8719" name="GL_VIBRANCE_BIAS_NV"/>
+ <enum value="0x871A" name="GL_TEXTURE_BORDER_VALUES_NV"/>
+ <enum value="0x871B" name="GL_TEXTURE_HI_SIZE_NV"/>
+ <enum value="0x871C" name="GL_TEXTURE_LO_SIZE_NV"/>
+ <enum value="0x871D" name="GL_TEXTURE_DS_SIZE_NV"/>
+ <enum value="0x871E" name="GL_TEXTURE_DT_SIZE_NV"/>
+ <enum value="0x871F" name="GL_TEXTURE_MAG_SIZE_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8720" end="0x873F" vendor="ARB">
+ <unused start="0x8720" end="0x8721" comment="MODELVIEW0/1 already exist"/>
+ <enum value="0x8722" name="GL_MODELVIEW2_ARB"/>
+ <enum value="0x8723" name="GL_MODELVIEW3_ARB"/>
+ <enum value="0x8724" name="GL_MODELVIEW4_ARB"/>
+ <enum value="0x8725" name="GL_MODELVIEW5_ARB"/>
+ <enum value="0x8726" name="GL_MODELVIEW6_ARB"/>
+ <enum value="0x8727" name="GL_MODELVIEW7_ARB"/>
+ <enum value="0x8728" name="GL_MODELVIEW8_ARB"/>
+ <enum value="0x8729" name="GL_MODELVIEW9_ARB"/>
+ <enum value="0x872A" name="GL_MODELVIEW10_ARB"/>
+ <enum value="0x872B" name="GL_MODELVIEW11_ARB"/>
+ <enum value="0x872C" name="GL_MODELVIEW12_ARB"/>
+ <enum value="0x872D" name="GL_MODELVIEW13_ARB"/>
+ <enum value="0x872E" name="GL_MODELVIEW14_ARB"/>
+ <enum value="0x872F" name="GL_MODELVIEW15_ARB"/>
+ <enum value="0x8730" name="GL_MODELVIEW16_ARB"/>
+ <enum value="0x8731" name="GL_MODELVIEW17_ARB"/>
+ <enum value="0x8732" name="GL_MODELVIEW18_ARB"/>
+ <enum value="0x8733" name="GL_MODELVIEW19_ARB"/>
+ <enum value="0x8734" name="GL_MODELVIEW20_ARB"/>
+ <enum value="0x8735" name="GL_MODELVIEW21_ARB"/>
+ <enum value="0x8736" name="GL_MODELVIEW22_ARB"/>
+ <enum value="0x8737" name="GL_MODELVIEW23_ARB"/>
+ <enum value="0x8738" name="GL_MODELVIEW24_ARB"/>
+ <enum value="0x8739" name="GL_MODELVIEW25_ARB"/>
+ <enum value="0x873A" name="GL_MODELVIEW26_ARB"/>
+ <enum value="0x873B" name="GL_MODELVIEW27_ARB"/>
+ <enum value="0x873C" name="GL_MODELVIEW28_ARB"/>
+ <enum value="0x873D" name="GL_MODELVIEW29_ARB"/>
+ <enum value="0x873E" name="GL_MODELVIEW30_ARB"/>
+ <enum value="0x873F" name="GL_MODELVIEW31_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8740" end="0x874F" vendor="AMD">
+ <enum value="0x8740" name="GL_DOT3_RGB_EXT"/>
+ <enum value="0x8740" name="GL_Z400_BINARY_AMD" comment="NOT an alias. Accidental reuse of GL_DOT3_RGB_EXT"/>
+ <enum value="0x8741" name="GL_DOT3_RGBA_EXT"/>
+ <enum value="0x8741" name="GL_PROGRAM_BINARY_LENGTH_OES" comment="NOT an alias. Accidental reuse of GL_DOT3_RGBA_EXT"/>
+ <enum value="0x8741" name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum value="0x8742" name="GL_MIRROR_CLAMP_ATI"/>
+ <enum value="0x8742" name="GL_MIRROR_CLAMP_EXT"/>
+ <enum value="0x8743" name="GL_MIRROR_CLAMP_TO_EDGE"/>
+ <enum value="0x8743" name="GL_MIRROR_CLAMP_TO_EDGE_ATI"/>
+ <enum value="0x8743" name="GL_MIRROR_CLAMP_TO_EDGE_EXT"/>
+ <enum value="0x8744" name="GL_MODULATE_ADD_ATI"/>
+ <enum value="0x8745" name="GL_MODULATE_SIGNED_ADD_ATI"/>
+ <enum value="0x8746" name="GL_MODULATE_SUBTRACT_ATI"/>
+ <unused start="0x8747" end="0x8749" vendor="AMD"/>
+ <enum value="0x874A" name="GL_SET_AMD"/>
+ <enum value="0x874B" name="GL_REPLACE_VALUE_AMD"/>
+ <enum value="0x874C" name="GL_STENCIL_OP_VALUE_AMD"/>
+ <enum value="0x874D" name="GL_STENCIL_BACK_OP_VALUE_AMD"/>
+ <enum value="0x874E" name="GL_VERTEX_ATTRIB_ARRAY_LONG"/>
+ <enum value="0x874F" name="GL_OCCLUSION_QUERY_EVENT_MASK_AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8750" end="0x875F" vendor="MESA">
+ <enum value="0x8750" name="GL_DEPTH_STENCIL_MESA"/>
+ <enum value="0x8751" name="GL_UNSIGNED_INT_24_8_MESA"/>
+ <enum value="0x8752" name="GL_UNSIGNED_INT_8_24_REV_MESA"/>
+ <enum value="0x8753" name="GL_UNSIGNED_SHORT_15_1_MESA"/>
+ <enum value="0x8754" name="GL_UNSIGNED_SHORT_1_15_REV_MESA"/>
+ <enum value="0x8755" name="GL_TRACE_MASK_MESA"/>
+ <enum value="0x8756" name="GL_TRACE_NAME_MESA"/>
+ <enum value="0x8757" name="GL_YCBCR_MESA"/>
+ <enum value="0x8758" name="GL_PACK_INVERT_MESA"/>
+ <enum value="0x8759" name="GL_DEBUG_OBJECT_MESA" comment="NOT an alias. Accidental reuse of GL_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x8759" name="GL_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x875A" name="GL_DEBUG_PRINT_MESA" comment="NOT an alias. Accidental reuse of GL_TEXTURE_2D_STACK_MESAX"/>
+ <enum value="0x875A" name="GL_TEXTURE_2D_STACK_MESAX"/>
+ <enum value="0x875B" name="GL_DEBUG_ASSERT_MESA" comment="NOT an alias. Accidental reuse of GL_PROXY_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x875B" name="GL_PROXY_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x875C" name="GL_PROXY_TEXTURE_2D_STACK_MESAX"/>
+ <enum value="0x875D" name="GL_TEXTURE_1D_STACK_BINDING_MESAX"/>
+ <enum value="0x875E" name="GL_TEXTURE_2D_STACK_BINDING_MESAX"/>
+ <unused start="0x875F" vendor="MESA"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8760" end="0x883F" vendor="AMD">
+ <enum value="0x8760" name="GL_STATIC_ATI"/>
+ <enum value="0x8761" name="GL_DYNAMIC_ATI"/>
+ <enum value="0x8762" name="GL_PRESERVE_ATI"/>
+ <enum value="0x8763" name="GL_DISCARD_ATI"/>
+ <enum value="0x8764" name="GL_BUFFER_SIZE"/>
+ <enum value="0x8764" name="GL_BUFFER_SIZE_ARB"/>
+ <enum value="0x8764" name="GL_OBJECT_BUFFER_SIZE_ATI"/>
+ <enum value="0x8765" name="GL_BUFFER_USAGE"/>
+ <enum value="0x8765" name="GL_BUFFER_USAGE_ARB"/>
+ <enum value="0x8765" name="GL_OBJECT_BUFFER_USAGE_ATI"/>
+ <enum value="0x8766" name="GL_ARRAY_OBJECT_BUFFER_ATI"/>
+ <enum value="0x8767" name="GL_ARRAY_OBJECT_OFFSET_ATI"/>
+ <enum value="0x8768" name="GL_ELEMENT_ARRAY_ATI"/>
+ <enum value="0x8769" name="GL_ELEMENT_ARRAY_TYPE_ATI"/>
+ <enum value="0x876A" name="GL_ELEMENT_ARRAY_POINTER_ATI"/>
+ <enum value="0x876B" name="GL_MAX_VERTEX_STREAMS_ATI"/>
+ <enum value="0x876C" name="GL_VERTEX_STREAM0_ATI"/>
+ <enum value="0x876D" name="GL_VERTEX_STREAM1_ATI"/>
+ <enum value="0x876E" name="GL_VERTEX_STREAM2_ATI"/>
+ <enum value="0x876F" name="GL_VERTEX_STREAM3_ATI"/>
+ <enum value="0x8770" name="GL_VERTEX_STREAM4_ATI"/>
+ <enum value="0x8771" name="GL_VERTEX_STREAM5_ATI"/>
+ <enum value="0x8772" name="GL_VERTEX_STREAM6_ATI"/>
+ <enum value="0x8773" name="GL_VERTEX_STREAM7_ATI"/>
+ <enum value="0x8774" name="GL_VERTEX_SOURCE_ATI"/>
+ <enum value="0x8775" name="GL_BUMP_ROT_MATRIX_ATI"/>
+ <enum value="0x8776" name="GL_BUMP_ROT_MATRIX_SIZE_ATI"/>
+ <enum value="0x8777" name="GL_BUMP_NUM_TEX_UNITS_ATI"/>
+ <enum value="0x8778" name="GL_BUMP_TEX_UNITS_ATI"/>
+ <enum value="0x8779" name="GL_DUDV_ATI"/>
+ <enum value="0x877A" name="GL_DU8DV8_ATI"/>
+ <enum value="0x877B" name="GL_BUMP_ENVMAP_ATI"/>
+ <enum value="0x877C" name="GL_BUMP_TARGET_ATI"/>
+ <unused start="0x877D" end="0x877F" vendor="AMD"/>
+ <enum value="0x8780" name="GL_VERTEX_SHADER_EXT"/>
+ <enum value="0x8781" name="GL_VERTEX_SHADER_BINDING_EXT"/>
+ <enum value="0x8782" name="GL_OP_INDEX_EXT"/>
+ <enum value="0x8783" name="GL_OP_NEGATE_EXT"/>
+ <enum value="0x8784" name="GL_OP_DOT3_EXT"/>
+ <enum value="0x8785" name="GL_OP_DOT4_EXT"/>
+ <enum value="0x8786" name="GL_OP_MUL_EXT"/>
+ <enum value="0x8787" name="GL_OP_ADD_EXT"/>
+ <enum value="0x8788" name="GL_OP_MADD_EXT"/>
+ <enum value="0x8789" name="GL_OP_FRAC_EXT"/>
+ <enum value="0x878A" name="GL_OP_MAX_EXT"/>
+ <enum value="0x878B" name="GL_OP_MIN_EXT"/>
+ <enum value="0x878C" name="GL_OP_SET_GE_EXT"/>
+ <enum value="0x878D" name="GL_OP_SET_LT_EXT"/>
+ <enum value="0x878E" name="GL_OP_CLAMP_EXT"/>
+ <enum value="0x878F" name="GL_OP_FLOOR_EXT"/>
+ <enum value="0x8790" name="GL_OP_ROUND_EXT"/>
+ <enum value="0x8791" name="GL_OP_EXP_BASE_2_EXT"/>
+ <enum value="0x8792" name="GL_OP_LOG_BASE_2_EXT"/>
+ <enum value="0x8793" name="GL_OP_POWER_EXT"/>
+ <enum value="0x8794" name="GL_OP_RECIP_EXT"/>
+ <enum value="0x8795" name="GL_OP_RECIP_SQRT_EXT"/>
+ <enum value="0x8796" name="GL_OP_SUB_EXT"/>
+ <enum value="0x8797" name="GL_OP_CROSS_PRODUCT_EXT"/>
+ <enum value="0x8798" name="GL_OP_MULTIPLY_MATRIX_EXT"/>
+ <enum value="0x8799" name="GL_OP_MOV_EXT"/>
+ <enum value="0x879A" name="GL_OUTPUT_VERTEX_EXT"/>
+ <enum value="0x879B" name="GL_OUTPUT_COLOR0_EXT"/>
+ <enum value="0x879C" name="GL_OUTPUT_COLOR1_EXT"/>
+ <enum value="0x879D" name="GL_OUTPUT_TEXTURE_COORD0_EXT"/>
+ <enum value="0x879E" name="GL_OUTPUT_TEXTURE_COORD1_EXT"/>
+ <enum value="0x879F" name="GL_OUTPUT_TEXTURE_COORD2_EXT"/>
+ <enum value="0x87A0" name="GL_OUTPUT_TEXTURE_COORD3_EXT"/>
+ <enum value="0x87A1" name="GL_OUTPUT_TEXTURE_COORD4_EXT"/>
+ <enum value="0x87A2" name="GL_OUTPUT_TEXTURE_COORD5_EXT"/>
+ <enum value="0x87A3" name="GL_OUTPUT_TEXTURE_COORD6_EXT"/>
+ <enum value="0x87A4" name="GL_OUTPUT_TEXTURE_COORD7_EXT"/>
+ <enum value="0x87A5" name="GL_OUTPUT_TEXTURE_COORD8_EXT"/>
+ <enum value="0x87A6" name="GL_OUTPUT_TEXTURE_COORD9_EXT"/>
+ <enum value="0x87A7" name="GL_OUTPUT_TEXTURE_COORD10_EXT"/>
+ <enum value="0x87A8" name="GL_OUTPUT_TEXTURE_COORD11_EXT"/>
+ <enum value="0x87A9" name="GL_OUTPUT_TEXTURE_COORD12_EXT"/>
+ <enum value="0x87AA" name="GL_OUTPUT_TEXTURE_COORD13_EXT"/>
+ <enum value="0x87AB" name="GL_OUTPUT_TEXTURE_COORD14_EXT"/>
+ <enum value="0x87AC" name="GL_OUTPUT_TEXTURE_COORD15_EXT"/>
+ <enum value="0x87AD" name="GL_OUTPUT_TEXTURE_COORD16_EXT"/>
+ <enum value="0x87AE" name="GL_OUTPUT_TEXTURE_COORD17_EXT"/>
+ <enum value="0x87AF" name="GL_OUTPUT_TEXTURE_COORD18_EXT"/>
+ <enum value="0x87B0" name="GL_OUTPUT_TEXTURE_COORD19_EXT"/>
+ <enum value="0x87B1" name="GL_OUTPUT_TEXTURE_COORD20_EXT"/>
+ <enum value="0x87B2" name="GL_OUTPUT_TEXTURE_COORD21_EXT"/>
+ <enum value="0x87B3" name="GL_OUTPUT_TEXTURE_COORD22_EXT"/>
+ <enum value="0x87B4" name="GL_OUTPUT_TEXTURE_COORD23_EXT"/>
+ <enum value="0x87B5" name="GL_OUTPUT_TEXTURE_COORD24_EXT"/>
+ <enum value="0x87B6" name="GL_OUTPUT_TEXTURE_COORD25_EXT"/>
+ <enum value="0x87B7" name="GL_OUTPUT_TEXTURE_COORD26_EXT"/>
+ <enum value="0x87B8" name="GL_OUTPUT_TEXTURE_COORD27_EXT"/>
+ <enum value="0x87B9" name="GL_OUTPUT_TEXTURE_COORD28_EXT"/>
+ <enum value="0x87BA" name="GL_OUTPUT_TEXTURE_COORD29_EXT"/>
+ <enum value="0x87BB" name="GL_OUTPUT_TEXTURE_COORD30_EXT"/>
+ <enum value="0x87BC" name="GL_OUTPUT_TEXTURE_COORD31_EXT"/>
+ <enum value="0x87BD" name="GL_OUTPUT_FOG_EXT"/>
+ <enum value="0x87BE" name="GL_SCALAR_EXT"/>
+ <enum value="0x87BF" name="GL_VECTOR_EXT"/>
+ <enum value="0x87C0" name="GL_MATRIX_EXT"/>
+ <enum value="0x87C1" name="GL_VARIANT_EXT"/>
+ <enum value="0x87C2" name="GL_INVARIANT_EXT"/>
+ <enum value="0x87C3" name="GL_LOCAL_CONSTANT_EXT"/>
+ <enum value="0x87C4" name="GL_LOCAL_EXT"/>
+ <enum value="0x87C5" name="GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum value="0x87C6" name="GL_MAX_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum value="0x87C7" name="GL_MAX_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum value="0x87C8" name="GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum value="0x87C9" name="GL_MAX_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum value="0x87CA" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum value="0x87CB" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum value="0x87CC" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum value="0x87CD" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum value="0x87CE" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum value="0x87CF" name="GL_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum value="0x87D0" name="GL_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum value="0x87D1" name="GL_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum value="0x87D2" name="GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum value="0x87D3" name="GL_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum value="0x87D4" name="GL_VERTEX_SHADER_OPTIMIZED_EXT"/>
+ <enum value="0x87D5" name="GL_X_EXT"/>
+ <enum value="0x87D6" name="GL_Y_EXT"/>
+ <enum value="0x87D7" name="GL_Z_EXT"/>
+ <enum value="0x87D8" name="GL_W_EXT"/>
+ <enum value="0x87D9" name="GL_NEGATIVE_X_EXT"/>
+ <enum value="0x87DA" name="GL_NEGATIVE_Y_EXT"/>
+ <enum value="0x87DB" name="GL_NEGATIVE_Z_EXT"/>
+ <enum value="0x87DC" name="GL_NEGATIVE_W_EXT"/>
+ <enum value="0x87DD" name="GL_ZERO_EXT"/>
+ <enum value="0x87DE" name="GL_ONE_EXT"/>
+ <enum value="0x87DF" name="GL_NEGATIVE_ONE_EXT"/>
+ <enum value="0x87E0" name="GL_NORMALIZED_RANGE_EXT"/>
+ <enum value="0x87E1" name="GL_FULL_RANGE_EXT"/>
+ <enum value="0x87E2" name="GL_CURRENT_VERTEX_EXT"/>
+ <enum value="0x87E3" name="GL_MVP_MATRIX_EXT"/>
+ <enum value="0x87E4" name="GL_VARIANT_VALUE_EXT"/>
+ <enum value="0x87E5" name="GL_VARIANT_DATATYPE_EXT"/>
+ <enum value="0x87E6" name="GL_VARIANT_ARRAY_STRIDE_EXT"/>
+ <enum value="0x87E7" name="GL_VARIANT_ARRAY_TYPE_EXT"/>
+ <enum value="0x87E8" name="GL_VARIANT_ARRAY_EXT"/>
+ <enum value="0x87E9" name="GL_VARIANT_ARRAY_POINTER_EXT"/>
+ <enum value="0x87EA" name="GL_INVARIANT_VALUE_EXT"/>
+ <enum value="0x87EB" name="GL_INVARIANT_DATATYPE_EXT"/>
+ <enum value="0x87EC" name="GL_LOCAL_CONSTANT_VALUE_EXT"/>
+ <enum value="0x87ED" name="GL_LOCAL_CONSTANT_DATATYPE_EXT"/>
+ <enum value="0x87EE" name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD"/>
+ <enum value="0x87F0" name="GL_PN_TRIANGLES_ATI"/>
+ <enum value="0x87F1" name="GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum value="0x87F2" name="GL_PN_TRIANGLES_POINT_MODE_ATI"/>
+ <enum value="0x87F3" name="GL_PN_TRIANGLES_NORMAL_MODE_ATI"/>
+ <enum value="0x87F4" name="GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum value="0x87F5" name="GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI"/>
+ <enum value="0x87F6" name="GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI"/>
+ <enum value="0x87F7" name="GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI"/>
+ <enum value="0x87F8" name="GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI"/>
+ <enum value="0x87F9" name="GL_3DC_X_AMD"/>
+ <enum value="0x87FA" name="GL_3DC_XY_AMD"/>
+ <enum value="0x87FB" name="GL_VBO_FREE_MEMORY_ATI"/>
+ <enum value="0x87FC" name="GL_TEXTURE_FREE_MEMORY_ATI"/>
+ <enum value="0x87FD" name="GL_RENDERBUFFER_FREE_MEMORY_ATI"/>
+ <enum value="0x87FE" name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum value="0x87FE" name="GL_NUM_PROGRAM_BINARY_FORMATS_OES"/>
+ <enum value="0x87FF" name="GL_PROGRAM_BINARY_FORMATS"/>
+ <enum value="0x87FF" name="GL_PROGRAM_BINARY_FORMATS_OES"/>
+ <enum value="0x8800" name="GL_STENCIL_BACK_FUNC"/>
+ <enum value="0x8800" name="GL_STENCIL_BACK_FUNC_ATI"/>
+ <enum value="0x8801" name="GL_STENCIL_BACK_FAIL"/>
+ <enum value="0x8801" name="GL_STENCIL_BACK_FAIL_ATI"/>
+ <enum value="0x8802" name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+ <enum value="0x8802" name="GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI"/>
+ <enum value="0x8803" name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+ <enum value="0x8803" name="GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI"/>
+ <enum value="0x8804" name="GL_FRAGMENT_PROGRAM_ARB"/>
+ <enum value="0x8805" name="GL_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x8806" name="GL_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x8807" name="GL_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum value="0x8808" name="GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x8809" name="GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x880A" name="GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <enum value="0x880B" name="GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x880C" name="GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x880D" name="GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum value="0x880E" name="GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x880F" name="GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x8810" name="GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <unused start="0x8811" end="0x8813" vendor="AMD"/>
+ <enum value="0x8814" name="GL_RGBA32F"/>
+ <enum value="0x8814" name="GL_RGBA32F_ARB"/>
+ <enum value="0x8814" name="GL_RGBA32F_EXT"/>
+ <enum value="0x8814" name="GL_RGBA_FLOAT32_APPLE"/>
+ <enum value="0x8814" name="GL_RGBA_FLOAT32_ATI"/>
+ <enum value="0x8815" name="GL_RGB32F"/>
+ <enum value="0x8815" name="GL_RGB32F_ARB"/>
+ <enum value="0x8815" name="GL_RGB32F_EXT"/>
+ <enum value="0x8815" name="GL_RGB_FLOAT32_APPLE"/>
+ <enum value="0x8815" name="GL_RGB_FLOAT32_ATI"/>
+ <enum value="0x8816" name="GL_ALPHA32F_ARB"/>
+ <enum value="0x8816" name="GL_ALPHA32F_EXT"/>
+ <enum value="0x8816" name="GL_ALPHA_FLOAT32_APPLE"/>
+ <enum value="0x8816" name="GL_ALPHA_FLOAT32_ATI"/>
+ <enum value="0x8817" name="GL_INTENSITY32F_ARB"/>
+ <enum value="0x8817" name="GL_INTENSITY_FLOAT32_APPLE"/>
+ <enum value="0x8817" name="GL_INTENSITY_FLOAT32_ATI"/>
+ <enum value="0x8818" name="GL_LUMINANCE32F_ARB"/>
+ <enum value="0x8818" name="GL_LUMINANCE32F_EXT"/>
+ <enum value="0x8818" name="GL_LUMINANCE_FLOAT32_APPLE"/>
+ <enum value="0x8818" name="GL_LUMINANCE_FLOAT32_ATI"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA32F_ARB"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA32F_EXT"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA_FLOAT32_APPLE"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA_FLOAT32_ATI"/>
+ <enum value="0x881A" name="GL_RGBA16F"/>
+ <enum value="0x881A" name="GL_RGBA16F_ARB"/>
+ <enum value="0x881A" name="GL_RGBA16F_EXT"/>
+ <enum value="0x881A" name="GL_RGBA_FLOAT16_APPLE"/>
+ <enum value="0x881A" name="GL_RGBA_FLOAT16_ATI"/>
+ <enum value="0x881B" name="GL_RGB16F"/>
+ <enum value="0x881B" name="GL_RGB16F_ARB"/>
+ <enum value="0x881B" name="GL_RGB16F_EXT"/>
+ <enum value="0x881B" name="GL_RGB_FLOAT16_APPLE"/>
+ <enum value="0x881B" name="GL_RGB_FLOAT16_ATI"/>
+ <enum value="0x881C" name="GL_ALPHA16F_ARB"/>
+ <enum value="0x881C" name="GL_ALPHA16F_EXT"/>
+ <enum value="0x881C" name="GL_ALPHA_FLOAT16_APPLE"/>
+ <enum value="0x881C" name="GL_ALPHA_FLOAT16_ATI"/>
+ <enum value="0x881D" name="GL_INTENSITY16F_ARB"/>
+ <enum value="0x881D" name="GL_INTENSITY_FLOAT16_APPLE"/>
+ <enum value="0x881D" name="GL_INTENSITY_FLOAT16_ATI"/>
+ <enum value="0x881E" name="GL_LUMINANCE16F_ARB"/>
+ <enum value="0x881E" name="GL_LUMINANCE16F_EXT"/>
+ <enum value="0x881E" name="GL_LUMINANCE_FLOAT16_APPLE"/>
+ <enum value="0x881E" name="GL_LUMINANCE_FLOAT16_ATI"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA16F_ARB"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA16F_EXT"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA_FLOAT16_APPLE"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA_FLOAT16_ATI"/>
+ <!-- RGBA_FLOAT_MODE_ARB equivalent to TYPE_RGBA_FLOAT_ATI -->
+ <enum value="0x8820" name="GL_RGBA_FLOAT_MODE_ARB"/>
+ <enum value="0x8820" name="GL_RGBA_FLOAT_MODE_ATI"/>
+ <unused start="0x8821" end="0x8822" vendor="AMD"/>
+ <enum value="0x8823" name="GL_WRITEONLY_RENDERING_QCOM"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_ARB"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_ATI"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_EXT"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_NV"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_ARB"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_ATI"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_EXT"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_NV"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_ARB"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_ATI"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_EXT"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_NV"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_ARB"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_ATI"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_EXT"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_NV"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_ARB"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_ATI"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_EXT"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_NV"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_ARB"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_ATI"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_EXT"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_NV"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_ARB"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_ATI"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_EXT"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_NV"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_ARB"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_ATI"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_EXT"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_NV"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_ARB"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_ATI"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_EXT"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_NV"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_ARB"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_ATI"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_EXT"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_NV"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_ARB"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_ATI"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_EXT"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_NV"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_ARB"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_ATI"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_EXT"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_NV"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_ARB"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_ATI"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_EXT"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_NV"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_ARB"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_ATI"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_EXT"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_NV"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_ARB"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_ATI"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_EXT"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_NV"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_ARB"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_ATI"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_EXT"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_NV"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_ARB"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_ATI"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_EXT"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_NV"/>
+ <enum value="0x8835" name="GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI"/>
+ <unused start="0x8836" vendor="AMD"/>
+ <enum value="0x8837" name="GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI" comment="Defined by Mesa but not ATI"/>
+ <unused start="0x8838" end="0x883C" vendor="AMD"/>
+ <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA_EXT"/>
+ <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA_OES"/>
+ <unused start="0x883E" vendor="AMD"/>
+ <enum value="0x883F" name="GL_SUBSAMPLE_DISTANCE_AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8840" end="0x884F" vendor="ARB">
+ <enum value="0x8840" name="GL_MATRIX_PALETTE_ARB"/>
+ <enum value="0x8840" name="GL_MATRIX_PALETTE_OES"/>
+ <enum value="0x8841" name="GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB"/>
+ <enum value="0x8842" name="GL_MAX_PALETTE_MATRICES_ARB"/>
+ <enum value="0x8842" name="GL_MAX_PALETTE_MATRICES_OES"/>
+ <enum value="0x8843" name="GL_CURRENT_PALETTE_MATRIX_ARB"/>
+ <enum value="0x8843" name="GL_CURRENT_PALETTE_MATRIX_OES"/>
+ <enum value="0x8844" name="GL_MATRIX_INDEX_ARRAY_ARB"/>
+ <enum value="0x8844" name="GL_MATRIX_INDEX_ARRAY_OES"/>
+ <enum value="0x8845" name="GL_CURRENT_MATRIX_INDEX_ARB"/>
+ <enum value="0x8846" name="GL_MATRIX_INDEX_ARRAY_SIZE_ARB"/>
+ <enum value="0x8846" name="GL_MATRIX_INDEX_ARRAY_SIZE_OES"/>
+ <enum value="0x8847" name="GL_MATRIX_INDEX_ARRAY_TYPE_ARB"/>
+ <enum value="0x8847" name="GL_MATRIX_INDEX_ARRAY_TYPE_OES"/>
+ <enum value="0x8848" name="GL_MATRIX_INDEX_ARRAY_STRIDE_ARB"/>
+ <enum value="0x8848" name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES"/>
+ <enum value="0x8849" name="GL_MATRIX_INDEX_ARRAY_POINTER_ARB"/>
+ <enum value="0x8849" name="GL_MATRIX_INDEX_ARRAY_POINTER_OES"/>
+ <enum value="0x884A" name="GL_TEXTURE_DEPTH_SIZE"/>
+ <enum value="0x884A" name="GL_TEXTURE_DEPTH_SIZE_ARB"/>
+ <enum value="0x884B" name="GL_DEPTH_TEXTURE_MODE"/>
+ <enum value="0x884B" name="GL_DEPTH_TEXTURE_MODE_ARB"/>
+ <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE"/>
+ <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE_ARB"/>
+ <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE_EXT"/>
+ <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC"/>
+ <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC_ARB"/>
+ <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC_EXT"/>
+ <enum value="0x884E" name="GL_COMPARE_R_TO_TEXTURE"/>
+ <enum value="0x884E" name="GL_COMPARE_R_TO_TEXTURE_ARB"/>
+ <enum value="0x884E" name="GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT"/>
+ <enum value="0x884E" name="GL_COMPARE_REF_TO_TEXTURE" alias="GL_COMPARE_R_TO_TEXTURE"/>
+ <enum value="0x884E" name="GL_COMPARE_REF_TO_TEXTURE_EXT"/>
+ <enum value="0x884F" name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8850" end="0x891F" vendor="NV">
+ <enum value="0x8850" name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum value="0x8851" name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV"/>
+ <enum value="0x8852" name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x8853" name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum value="0x8854" name="GL_OFFSET_HILO_TEXTURE_2D_NV"/>
+ <enum value="0x8855" name="GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x8856" name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum value="0x8857" name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x8858" name="GL_DEPENDENT_HILO_TEXTURE_2D_NV"/>
+ <enum value="0x8859" name="GL_DEPENDENT_RGB_TEXTURE_3D_NV"/>
+ <enum value="0x885A" name="GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV"/>
+ <enum value="0x885B" name="GL_DOT_PRODUCT_PASS_THROUGH_NV"/>
+ <enum value="0x885C" name="GL_DOT_PRODUCT_TEXTURE_1D_NV"/>
+ <enum value="0x885D" name="GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV"/>
+ <enum value="0x885E" name="GL_HILO8_NV"/>
+ <enum value="0x885F" name="GL_SIGNED_HILO8_NV"/>
+ <enum value="0x8860" name="GL_FORCE_BLUE_TO_ONE_NV"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE_ARB"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE_NV"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE_OES"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE_ARB"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE_NV"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE_OES"/>
+ <enum value="0x8863" name="GL_POINT_SPRITE_R_MODE_NV"/>
+ <enum value="0x8864" name="GL_PIXEL_COUNTER_BITS_NV"/>
+ <enum value="0x8864" name="GL_QUERY_COUNTER_BITS"/>
+ <enum value="0x8864" name="GL_QUERY_COUNTER_BITS_ARB"/>
+ <enum value="0x8864" name="GL_QUERY_COUNTER_BITS_EXT"/>
+ <enum value="0x8865" name="GL_CURRENT_OCCLUSION_QUERY_ID_NV"/>
+ <enum value="0x8865" name="GL_CURRENT_QUERY"/>
+ <enum value="0x8865" name="GL_CURRENT_QUERY_ARB"/>
+ <enum value="0x8865" name="GL_CURRENT_QUERY_EXT"/>
+ <enum value="0x8866" name="GL_PIXEL_COUNT_NV"/>
+ <enum value="0x8866" name="GL_QUERY_RESULT"/>
+ <enum value="0x8866" name="GL_QUERY_RESULT_ARB"/>
+ <enum value="0x8866" name="GL_QUERY_RESULT_EXT"/>
+ <enum value="0x8867" name="GL_PIXEL_COUNT_AVAILABLE_NV"/>
+ <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE"/>
+ <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE_ARB"/>
+ <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
+ <enum value="0x8868" name="GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV"/>
+ <enum value="0x8869" name="GL_MAX_VERTEX_ATTRIBS"/>
+ <enum value="0x8869" name="GL_MAX_VERTEX_ATTRIBS_ARB"/>
+ <enum value="0x886A" name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <enum value="0x886A" name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"/>
+ <unused start="0x886B" vendor="NV"/>
+ <enum value="0x886C" name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
+ <enum value="0x886C" name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT"/>
+ <enum value="0x886D" name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"/>
+ <enum value="0x886D" name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT"/>
+ <enum value="0x886E" name="GL_DEPTH_STENCIL_TO_RGBA_NV"/>
+ <enum value="0x886F" name="GL_DEPTH_STENCIL_TO_BGRA_NV"/>
+ <enum value="0x8870" name="GL_FRAGMENT_PROGRAM_NV"/>
+ <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS"/>
+ <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS_ARB"/>
+ <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS_NV"/>
+ <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS_NV"/>
+ <enum value="0x8873" name="GL_FRAGMENT_PROGRAM_BINDING_NV"/>
+ <enum value="0x8874" name="GL_PROGRAM_ERROR_STRING_ARB"/>
+ <enum value="0x8874" name="GL_PROGRAM_ERROR_STRING_NV"/>
+ <enum value="0x8875" name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+ <enum value="0x8876" name="GL_PROGRAM_FORMAT_ARB"/>
+ <unused start="0x8877" vendor="NV" comment="Should have been assigned to PROGRAM_BINDING_ARB"/>
+ <enum value="0x8878" name="GL_WRITE_PIXEL_DATA_RANGE_NV"/>
+ <enum value="0x8879" name="GL_READ_PIXEL_DATA_RANGE_NV"/>
+ <enum value="0x887A" name="GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum value="0x887B" name="GL_READ_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum value="0x887C" name="GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <enum value="0x887D" name="GL_READ_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <unused start="0x887E" vendor="NV"/>
+ <enum value="0x887F" name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum value="0x887F" name="GL_GEOMETRY_SHADER_INVOCATIONS_EXT"/>
+ <enum value="0x8880" name="GL_FLOAT_R_NV"/>
+ <enum value="0x8881" name="GL_FLOAT_RG_NV"/>
+ <enum value="0x8882" name="GL_FLOAT_RGB_NV"/>
+ <enum value="0x8883" name="GL_FLOAT_RGBA_NV"/>
+ <enum value="0x8884" name="GL_FLOAT_R16_NV"/>
+ <enum value="0x8885" name="GL_FLOAT_R32_NV"/>
+ <enum value="0x8886" name="GL_FLOAT_RG16_NV"/>
+ <enum value="0x8887" name="GL_FLOAT_RG32_NV"/>
+ <enum value="0x8888" name="GL_FLOAT_RGB16_NV"/>
+ <enum value="0x8889" name="GL_FLOAT_RGB32_NV"/>
+ <enum value="0x888A" name="GL_FLOAT_RGBA16_NV"/>
+ <enum value="0x888B" name="GL_FLOAT_RGBA32_NV"/>
+ <enum value="0x888C" name="GL_TEXTURE_FLOAT_COMPONENTS_NV"/>
+ <enum value="0x888D" name="GL_FLOAT_CLEAR_COLOR_VALUE_NV"/>
+ <enum value="0x888E" name="GL_FLOAT_RGBA_MODE_NV"/>
+ <enum value="0x888F" name="GL_TEXTURE_UNSIGNED_REMAP_MODE_NV"/>
+ <enum value="0x8890" name="GL_DEPTH_BOUNDS_TEST_EXT"/>
+ <enum value="0x8891" name="GL_DEPTH_BOUNDS_EXT"/>
+ <enum value="0x8892" name="GL_ARRAY_BUFFER"/>
+ <enum value="0x8892" name="GL_ARRAY_BUFFER_ARB"/>
+ <enum value="0x8893" name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum value="0x8893" name="GL_ELEMENT_ARRAY_BUFFER_ARB"/>
+ <enum value="0x8894" name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8894" name="GL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8895" name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8895" name="GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8896" name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8896" name="GL_VERTEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8897" name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8897" name="GL_NORMAL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8898" name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8898" name="GL_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8899" name="GL_INDEX_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8899" name="GL_INDEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889A" name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889A" name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889B" name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889B" name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889C" name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889C" name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889D" name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889D" name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889D" name="GL_FOG_COORD_ARRAY_BUFFER_BINDING" alias="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES"/>
+ <enum value="0x889F" name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889F" name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x88A0" name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A1" name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A2" name="GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A3" name="GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A4" name="GL_PROGRAM_TEMPORARIES_ARB"/>
+ <enum value="0x88A5" name="GL_MAX_PROGRAM_TEMPORARIES_ARB"/>
+ <enum value="0x88A6" name="GL_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum value="0x88A7" name="GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum value="0x88A8" name="GL_PROGRAM_PARAMETERS_ARB"/>
+ <enum value="0x88A9" name="GL_MAX_PROGRAM_PARAMETERS_ARB"/>
+ <enum value="0x88AA" name="GL_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum value="0x88AB" name="GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum value="0x88AC" name="GL_PROGRAM_ATTRIBS_ARB"/>
+ <enum value="0x88AD" name="GL_MAX_PROGRAM_ATTRIBS_ARB"/>
+ <enum value="0x88AE" name="GL_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum value="0x88AF" name="GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum value="0x88B0" name="GL_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B1" name="GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B2" name="GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B3" name="GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B4" name="GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"/>
+ <enum value="0x88B5" name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
+ <enum value="0x88B6" name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
+ <enum value="0x88B7" name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
+ <enum value="0x88B8" name="GL_READ_ONLY"/>
+ <enum value="0x88B8" name="GL_READ_ONLY_ARB"/>
+ <enum value="0x88B9" name="GL_WRITE_ONLY"/>
+ <enum value="0x88B9" name="GL_WRITE_ONLY_ARB"/>
+ <enum value="0x88B9" name="GL_WRITE_ONLY_OES"/>
+ <enum value="0x88BA" name="GL_READ_WRITE"/>
+ <enum value="0x88BA" name="GL_READ_WRITE_ARB"/>
+ <enum value="0x88BB" name="GL_BUFFER_ACCESS"/>
+ <enum value="0x88BB" name="GL_BUFFER_ACCESS_ARB"/>
+ <enum value="0x88BB" name="GL_BUFFER_ACCESS_OES"/>
+ <enum value="0x88BC" name="GL_BUFFER_MAPPED"/>
+ <enum value="0x88BC" name="GL_BUFFER_MAPPED_ARB"/>
+ <enum value="0x88BC" name="GL_BUFFER_MAPPED_OES"/>
+ <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER"/>
+ <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER_ARB"/>
+ <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER_OES"/>
+ <enum value="0x88BE" name="GL_WRITE_DISCARD_NV"/>
+ <enum value="0x88BF" name="GL_TIME_ELAPSED"/>
+ <enum value="0x88BF" name="GL_TIME_ELAPSED_EXT"/>
+ <enum value="0x88C0" name="GL_MATRIX0_ARB"/>
+ <enum value="0x88C1" name="GL_MATRIX1_ARB"/>
+ <enum value="0x88C2" name="GL_MATRIX2_ARB"/>
+ <enum value="0x88C3" name="GL_MATRIX3_ARB"/>
+ <enum value="0x88C4" name="GL_MATRIX4_ARB"/>
+ <enum value="0x88C5" name="GL_MATRIX5_ARB"/>
+ <enum value="0x88C6" name="GL_MATRIX6_ARB"/>
+ <enum value="0x88C7" name="GL_MATRIX7_ARB"/>
+ <enum value="0x88C8" name="GL_MATRIX8_ARB"/>
+ <enum value="0x88C9" name="GL_MATRIX9_ARB"/>
+ <enum value="0x88CA" name="GL_MATRIX10_ARB"/>
+ <enum value="0x88CB" name="GL_MATRIX11_ARB"/>
+ <enum value="0x88CC" name="GL_MATRIX12_ARB"/>
+ <enum value="0x88CD" name="GL_MATRIX13_ARB"/>
+ <enum value="0x88CE" name="GL_MATRIX14_ARB"/>
+ <enum value="0x88CF" name="GL_MATRIX15_ARB"/>
+ <enum value="0x88D0" name="GL_MATRIX16_ARB"/>
+ <enum value="0x88D1" name="GL_MATRIX17_ARB"/>
+ <enum value="0x88D2" name="GL_MATRIX18_ARB"/>
+ <enum value="0x88D3" name="GL_MATRIX19_ARB"/>
+ <enum value="0x88D4" name="GL_MATRIX20_ARB"/>
+ <enum value="0x88D5" name="GL_MATRIX21_ARB"/>
+ <enum value="0x88D6" name="GL_MATRIX22_ARB"/>
+ <enum value="0x88D7" name="GL_MATRIX23_ARB"/>
+ <enum value="0x88D8" name="GL_MATRIX24_ARB"/>
+ <enum value="0x88D9" name="GL_MATRIX25_ARB"/>
+ <enum value="0x88DA" name="GL_MATRIX26_ARB"/>
+ <enum value="0x88DB" name="GL_MATRIX27_ARB"/>
+ <enum value="0x88DC" name="GL_MATRIX28_ARB"/>
+ <enum value="0x88DD" name="GL_MATRIX29_ARB"/>
+ <enum value="0x88DE" name="GL_MATRIX30_ARB"/>
+ <enum value="0x88DF" name="GL_MATRIX31_ARB"/>
+ <enum value="0x88E0" name="GL_STREAM_DRAW"/>
+ <enum value="0x88E0" name="GL_STREAM_DRAW_ARB"/>
+ <enum value="0x88E1" name="GL_STREAM_READ"/>
+ <enum value="0x88E1" name="GL_STREAM_READ_ARB"/>
+ <enum value="0x88E2" name="GL_STREAM_COPY"/>
+ <enum value="0x88E2" name="GL_STREAM_COPY_ARB"/>
+ <unused start="0x88E3" vendor="NV" comment="To extend ARB_vbo"/>
+ <enum value="0x88E4" name="GL_STATIC_DRAW"/>
+ <enum value="0x88E4" name="GL_STATIC_DRAW_ARB"/>
+ <enum value="0x88E5" name="GL_STATIC_READ"/>
+ <enum value="0x88E5" name="GL_STATIC_READ_ARB"/>
+ <enum value="0x88E6" name="GL_STATIC_COPY"/>
+ <enum value="0x88E6" name="GL_STATIC_COPY_ARB"/>
+ <unused start="0x88E7" vendor="NV" comment="To extend ARB_vbo"/>
+ <enum value="0x88E8" name="GL_DYNAMIC_DRAW"/>
+ <enum value="0x88E8" name="GL_DYNAMIC_DRAW_ARB"/>
+ <enum value="0x88E9" name="GL_DYNAMIC_READ"/>
+ <enum value="0x88E9" name="GL_DYNAMIC_READ_ARB"/>
+ <enum value="0x88EA" name="GL_DYNAMIC_COPY"/>
+ <enum value="0x88EA" name="GL_DYNAMIC_COPY_ARB"/>
+ <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER"/>
+ <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER_ARB"/>
+ <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER_EXT"/>
+ <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER"/>
+ <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER_ARB"/>
+ <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER_EXT"/>
+ <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+ <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING_ARB"/>
+ <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING_EXT"/>
+ <enum value="0x88EE" name="GL_ETC1_SRGB8_NV"/>
+ <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+ <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING_ARB"/>
+ <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING_EXT"/>
+ <enum value="0x88F0" name="GL_DEPTH24_STENCIL8"/>
+ <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_EXT"/>
+ <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_OES"/>
+ <enum value="0x88F1" name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum value="0x88F1" name="GL_TEXTURE_STENCIL_SIZE_EXT"/>
+ <enum value="0x88F2" name="GL_STENCIL_TAG_BITS_EXT"/>
+ <enum value="0x88F3" name="GL_STENCIL_CLEAR_TAG_VALUE_EXT"/>
+ <enum value="0x88F4" name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
+ <enum value="0x88F5" name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
+ <enum value="0x88F6" name="GL_MAX_PROGRAM_IF_DEPTH_NV"/>
+ <enum value="0x88F7" name="GL_MAX_PROGRAM_LOOP_DEPTH_NV"/>
+ <enum value="0x88F8" name="GL_MAX_PROGRAM_LOOP_COUNT_NV"/>
+ <enum value="0x88F9" name="GL_SRC1_COLOR"/>
+ <enum value="0x88FA" name="GL_ONE_MINUS_SRC1_COLOR"/>
+ <enum value="0x88FB" name="GL_ONE_MINUS_SRC1_ALPHA"/>
+ <enum value="0x88FC" name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+ <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
+ <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT"/>
+ <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV"/>
+ <enum value="0x88FF" name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+ <enum value="0x88FF" name="GL_MAX_ARRAY_TEXTURE_LAYERS_EXT"/>
+ <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+ <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+ <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum value="0x8906" name="GL_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum value="0x8907" name="GL_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum value="0x8908" name="GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum value="0x8909" name="GL_MAX_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum value="0x8910" name="GL_STENCIL_TEST_TWO_SIDE_EXT"/>
+ <enum value="0x8911" name="GL_ACTIVE_STENCIL_FACE_EXT"/>
+ <enum value="0x8912" name="GL_MIRROR_CLAMP_TO_BORDER_EXT"/>
+ <unused start="0x8913" vendor="NV"/>
+ <enum value="0x8914" name="GL_SAMPLES_PASSED"/>
+ <enum value="0x8914" name="GL_SAMPLES_PASSED_ARB"/>
+ <unused start="0x8915" vendor="NV"/>
+ <enum value="0x8916" name="GL_GEOMETRY_VERTICES_OUT"/>
+ <enum value="0x8916" name="GL_GEOMETRY_LINKED_VERTICES_OUT_EXT"/>
+ <enum value="0x8917" name="GL_GEOMETRY_INPUT_TYPE"/>
+ <enum value="0x8917" name="GL_GEOMETRY_LINKED_INPUT_TYPE_EXT"/>
+ <enum value="0x8918" name="GL_GEOMETRY_OUTPUT_TYPE"/>
+ <enum value="0x8918" name="GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT"/>
+ <enum value="0x8919" name="GL_SAMPLER_BINDING"/>
+ <enum value="0x891A" name="GL_CLAMP_VERTEX_COLOR"/>
+ <enum value="0x891A" name="GL_CLAMP_VERTEX_COLOR_ARB"/>
+ <enum value="0x891B" name="GL_CLAMP_FRAGMENT_COLOR"/>
+ <enum value="0x891B" name="GL_CLAMP_FRAGMENT_COLOR_ARB"/>
+ <enum value="0x891C" name="GL_CLAMP_READ_COLOR"/>
+ <enum value="0x891C" name="GL_CLAMP_READ_COLOR_ARB"/>
+ <enum value="0x891D" name="GL_FIXED_ONLY"/>
+ <enum value="0x891D" name="GL_FIXED_ONLY_ARB"/>
+ <enum value="0x891E" name="GL_TESS_CONTROL_PROGRAM_NV"/>
+ <enum value="0x891F" name="GL_TESS_EVALUATION_PROGRAM_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8920" end="0x897F" vendor="AMD">
+ <enum value="0x8920" name="GL_FRAGMENT_SHADER_ATI"/>
+ <enum value="0x8921" name="GL_REG_0_ATI"/>
+ <enum value="0x8922" name="GL_REG_1_ATI"/>
+ <enum value="0x8923" name="GL_REG_2_ATI"/>
+ <enum value="0x8924" name="GL_REG_3_ATI"/>
+ <enum value="0x8925" name="GL_REG_4_ATI"/>
+ <enum value="0x8926" name="GL_REG_5_ATI"/>
+ <enum value="0x8927" name="GL_REG_6_ATI"/>
+ <enum value="0x8928" name="GL_REG_7_ATI"/>
+ <enum value="0x8929" name="GL_REG_8_ATI"/>
+ <enum value="0x892A" name="GL_REG_9_ATI"/>
+ <enum value="0x892B" name="GL_REG_10_ATI"/>
+ <enum value="0x892C" name="GL_REG_11_ATI"/>
+ <enum value="0x892D" name="GL_REG_12_ATI"/>
+ <enum value="0x892E" name="GL_REG_13_ATI"/>
+ <enum value="0x892F" name="GL_REG_14_ATI"/>
+ <enum value="0x8930" name="GL_REG_15_ATI"/>
+ <enum value="0x8931" name="GL_REG_16_ATI"/>
+ <enum value="0x8932" name="GL_REG_17_ATI"/>
+ <enum value="0x8933" name="GL_REG_18_ATI"/>
+ <enum value="0x8934" name="GL_REG_19_ATI"/>
+ <enum value="0x8935" name="GL_REG_20_ATI"/>
+ <enum value="0x8936" name="GL_REG_21_ATI"/>
+ <enum value="0x8937" name="GL_REG_22_ATI"/>
+ <enum value="0x8938" name="GL_REG_23_ATI"/>
+ <enum value="0x8939" name="GL_REG_24_ATI"/>
+ <enum value="0x893A" name="GL_REG_25_ATI"/>
+ <enum value="0x893B" name="GL_REG_26_ATI"/>
+ <enum value="0x893C" name="GL_REG_27_ATI"/>
+ <enum value="0x893D" name="GL_REG_28_ATI"/>
+ <enum value="0x893E" name="GL_REG_29_ATI"/>
+ <enum value="0x893F" name="GL_REG_30_ATI"/>
+ <enum value="0x8940" name="GL_REG_31_ATI"/>
+ <enum value="0x8941" name="GL_CON_0_ATI"/>
+ <enum value="0x8942" name="GL_CON_1_ATI"/>
+ <enum value="0x8943" name="GL_CON_2_ATI"/>
+ <enum value="0x8944" name="GL_CON_3_ATI"/>
+ <enum value="0x8945" name="GL_CON_4_ATI"/>
+ <enum value="0x8946" name="GL_CON_5_ATI"/>
+ <enum value="0x8947" name="GL_CON_6_ATI"/>
+ <enum value="0x8948" name="GL_CON_7_ATI"/>
+ <enum value="0x8949" name="GL_CON_8_ATI"/>
+ <enum value="0x894A" name="GL_CON_9_ATI"/>
+ <enum value="0x894B" name="GL_CON_10_ATI"/>
+ <enum value="0x894C" name="GL_CON_11_ATI"/>
+ <enum value="0x894D" name="GL_CON_12_ATI"/>
+ <enum value="0x894E" name="GL_CON_13_ATI"/>
+ <enum value="0x894F" name="GL_CON_14_ATI"/>
+ <enum value="0x8950" name="GL_CON_15_ATI"/>
+ <enum value="0x8951" name="GL_CON_16_ATI"/>
+ <enum value="0x8952" name="GL_CON_17_ATI"/>
+ <enum value="0x8953" name="GL_CON_18_ATI"/>
+ <enum value="0x8954" name="GL_CON_19_ATI"/>
+ <enum value="0x8955" name="GL_CON_20_ATI"/>
+ <enum value="0x8956" name="GL_CON_21_ATI"/>
+ <enum value="0x8957" name="GL_CON_22_ATI"/>
+ <enum value="0x8958" name="GL_CON_23_ATI"/>
+ <enum value="0x8959" name="GL_CON_24_ATI"/>
+ <enum value="0x895A" name="GL_CON_25_ATI"/>
+ <enum value="0x895B" name="GL_CON_26_ATI"/>
+ <enum value="0x895C" name="GL_CON_27_ATI"/>
+ <enum value="0x895D" name="GL_CON_28_ATI"/>
+ <enum value="0x895E" name="GL_CON_29_ATI"/>
+ <enum value="0x895F" name="GL_CON_30_ATI"/>
+ <enum value="0x8960" name="GL_CON_31_ATI"/>
+ <enum value="0x8961" name="GL_MOV_ATI"/>
+ <enum value="0x8963" name="GL_ADD_ATI"/>
+ <enum value="0x8964" name="GL_MUL_ATI"/>
+ <enum value="0x8965" name="GL_SUB_ATI"/>
+ <enum value="0x8966" name="GL_DOT3_ATI"/>
+ <enum value="0x8967" name="GL_DOT4_ATI"/>
+ <enum value="0x8968" name="GL_MAD_ATI"/>
+ <enum value="0x8969" name="GL_LERP_ATI"/>
+ <enum value="0x896A" name="GL_CND_ATI"/>
+ <enum value="0x896B" name="GL_CND0_ATI"/>
+ <enum value="0x896C" name="GL_DOT2_ADD_ATI"/>
+ <enum value="0x896D" name="GL_SECONDARY_INTERPOLATOR_ATI"/>
+ <enum value="0x896E" name="GL_NUM_FRAGMENT_REGISTERS_ATI"/>
+ <enum value="0x896F" name="GL_NUM_FRAGMENT_CONSTANTS_ATI"/>
+ <enum value="0x8970" name="GL_NUM_PASSES_ATI"/>
+ <enum value="0x8971" name="GL_NUM_INSTRUCTIONS_PER_PASS_ATI"/>
+ <enum value="0x8972" name="GL_NUM_INSTRUCTIONS_TOTAL_ATI"/>
+ <enum value="0x8973" name="GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI"/>
+ <enum value="0x8974" name="GL_NUM_LOOPBACK_COMPONENTS_ATI"/>
+ <enum value="0x8975" name="GL_COLOR_ALPHA_PAIRING_ATI"/>
+ <enum value="0x8976" name="GL_SWIZZLE_STR_ATI"/>
+ <enum value="0x8977" name="GL_SWIZZLE_STQ_ATI"/>
+ <enum value="0x8978" name="GL_SWIZZLE_STR_DR_ATI"/>
+ <enum value="0x8979" name="GL_SWIZZLE_STQ_DQ_ATI"/>
+ <enum value="0x897A" name="GL_SWIZZLE_STRQ_ATI"/>
+ <enum value="0x897B" name="GL_SWIZZLE_STRQ_DQ_ATI"/>
+ <unused start="0x897C" end="0x897F" vendor="AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8980" end="0x898F" vendor="OML">
+ <enum value="0x8980" name="GL_INTERLACE_OML"/>
+ <enum value="0x8981" name="GL_INTERLACE_READ_OML"/>
+ <enum value="0x8982" name="GL_FORMAT_SUBSAMPLE_24_24_OML"/>
+ <enum value="0x8983" name="GL_FORMAT_SUBSAMPLE_244_244_OML"/>
+ <enum value="0x8984" name="GL_PACK_RESAMPLE_OML"/>
+ <enum value="0x8985" name="GL_UNPACK_RESAMPLE_OML"/>
+ <enum value="0x8986" name="GL_RESAMPLE_REPLICATE_OML"/>
+ <enum value="0x8987" name="GL_RESAMPLE_ZERO_FILL_OML"/>
+ <enum value="0x8988" name="GL_RESAMPLE_AVERAGE_OML"/>
+ <enum value="0x8989" name="GL_RESAMPLE_DECIMATE_OML"/>
+ <enum value="0x898A" name="GL_POINT_SIZE_ARRAY_TYPE_OES"/>
+ <enum value="0x898B" name="GL_POINT_SIZE_ARRAY_STRIDE_OES"/>
+ <enum value="0x898C" name="GL_POINT_SIZE_ARRAY_POINTER_OES"/>
+ <enum value="0x898D" name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum value="0x898E" name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum value="0x898F" name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8990" end="0x899F" vendor="ZiiLabs">
+ <unused start="0x8990" end="0x899F" vendor="ZiiLabs"/>
+ </enums>
+
+ <enums namespace="GL" start="0x89A0" end="0x89FF" vendor="Matrox">
+ <unused start="0x89A0" end="0x89FF" vendor="Matrox"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8A00" end="0x8A7F" vendor="APPLE">
+ <enum value="0x8A00" name="GL_VERTEX_ATTRIB_MAP1_APPLE"/>
+ <enum value="0x8A01" name="GL_VERTEX_ATTRIB_MAP2_APPLE"/>
+ <enum value="0x8A02" name="GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE"/>
+ <enum value="0x8A03" name="GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE"/>
+ <enum value="0x8A04" name="GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE"/>
+ <enum value="0x8A05" name="GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE"/>
+ <enum value="0x8A06" name="GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE"/>
+ <enum value="0x8A07" name="GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE"/>
+ <enum value="0x8A08" name="GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE"/>
+ <enum value="0x8A09" name="GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE"/>
+ <enum value="0x8A0A" name="GL_DRAW_PIXELS_APPLE"/>
+ <enum value="0x8A0B" name="GL_FENCE_APPLE"/>
+ <enum value="0x8A0C" name="GL_ELEMENT_ARRAY_APPLE"/>
+ <enum value="0x8A0D" name="GL_ELEMENT_ARRAY_TYPE_APPLE"/>
+ <enum value="0x8A0E" name="GL_ELEMENT_ARRAY_POINTER_APPLE"/>
+ <enum value="0x8A0F" name="GL_COLOR_FLOAT_APPLE"/>
+ <unused start="0x8A10" vendor="APPLE" comment="Unknown extension (Khronos bug 632)"/>
+ <!-- <enum value="0x8A10" name="GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE"/> -->
+ <enum value="0x8A11" name="GL_UNIFORM_BUFFER"/>
+ <enum value="0x8A12" name="GL_BUFFER_SERIALIZED_MODIFY_APPLE"/>
+ <enum value="0x8A13" name="GL_BUFFER_FLUSHING_UNMAP_APPLE"/>
+ <enum value="0x8A14" name="GL_AUX_DEPTH_STENCIL_APPLE"/>
+ <enum value="0x8A15" name="GL_PACK_ROW_BYTES_APPLE"/>
+ <enum value="0x8A16" name="GL_UNPACK_ROW_BYTES_APPLE"/>
+ <unused start="0x8A17" end="0x8A18" vendor="APPLE"/>
+ <enum value="0x8A19" name="GL_RELEASED_APPLE"/>
+ <enum value="0x8A1A" name="GL_VOLATILE_APPLE"/>
+ <enum value="0x8A1B" name="GL_RETAINED_APPLE"/>
+ <enum value="0x8A1C" name="GL_UNDEFINED_APPLE"/>
+ <enum value="0x8A1D" name="GL_PURGEABLE_APPLE"/>
+ <unused start="0x8A1E" vendor="APPLE"/>
+ <enum value="0x8A1F" name="GL_RGB_422_APPLE"/>
+ <unused start="0x8A20" end="0x8A27" vendor="APPLE"/>
+ <enum value="0x8A28" name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum value="0x8A29" name="GL_UNIFORM_BUFFER_START"/>
+ <enum value="0x8A2A" name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum value="0x8A2B" name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2C" name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2C" name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT"/>
+ <enum value="0x8A2D" name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2E" name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2F" name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum value="0x8A30" name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum value="0x8A31" name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum value="0x8A32" name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum value="0x8A32" name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
+ <enum value="0x8A33" name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum value="0x8A34" name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum value="0x8A35" name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum value="0x8A36" name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum value="0x8A37" name="GL_UNIFORM_TYPE"/>
+ <enum value="0x8A38" name="GL_UNIFORM_SIZE"/>
+ <enum value="0x8A39" name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum value="0x8A3A" name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum value="0x8A3B" name="GL_UNIFORM_OFFSET"/>
+ <enum value="0x8A3C" name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum value="0x8A3D" name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum value="0x8A3E" name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum value="0x8A3F" name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum value="0x8A40" name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum value="0x8A41" name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum value="0x8A42" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum value="0x8A43" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum value="0x8A44" name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum value="0x8A45" name="GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum value="0x8A46" name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <unused start="0x8A47" vendor="APPLE"/>
+ <enum value="0x8A48" name="GL_TEXTURE_SRGB_DECODE_EXT"/>
+ <enum value="0x8A49" name="GL_DECODE_EXT"/>
+ <enum value="0x8A4A" name="GL_SKIP_DECODE_EXT"/>
+ <unused start="0x8A4B" end="0x8A4E" vendor="APPLE"/>
+ <enum value="0x8A4F" name="GL_PROGRAM_PIPELINE_OBJECT_EXT"/>
+ <unused start="0x8A50" vendor="APPLE"/>
+ <enum value="0x8A51" name="GL_RGB_RAW_422_APPLE"/>
+ <enum value="0x8A52" name="GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT"/>
+ <enum value="0x8A53" name="GL_SYNC_OBJECT_APPLE"/>
+ <enum value="0x8A54" name="GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT"/>
+ <enum value="0x8A55" name="GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT"/>
+ <enum value="0x8A56" name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT"/>
+ <enum value="0x8A57" name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT"/>
+ <unused start="0x8A58" end="0x8A7F" vendor="APPLE"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8A80" end="0x8AEF" vendor="Matrox">
+ <unused start="0x8A80" end="0x8AEF" vendor="Matrox"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8AF0" end="0x8B2F" vendor="Chromium" comment="For Brian Paul">
+ <unused start="0x8AF0" end="0x8B2F" vendor="Chromium"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B30" end="0x8B3F" group="ShaderType" vendor="ARB">
+ <enum value="0x8B30" name="GL_FRAGMENT_SHADER"/>
+ <enum value="0x8B30" name="GL_FRAGMENT_SHADER_ARB"/>
+ <enum value="0x8B31" name="GL_VERTEX_SHADER"/>
+ <enum value="0x8B31" name="GL_VERTEX_SHADER_ARB"/>
+ <unused start="0x8B32" end="0x8B3F" comment="For shader types"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B40" end="0x8B47" group="ContainerType" vendor="ARB">
+ <enum value="0x8B40" name="GL_PROGRAM_OBJECT_ARB"/>
+ <enum value="0x8B40" name="GL_PROGRAM_OBJECT_EXT"/>
+ <unused start="0x8B41" end="0x8B47" comment="For container types"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B48" end="0x8B4F" vendor="ARB">
+ <enum value="0x8B48" name="GL_SHADER_OBJECT_ARB"/>
+ <enum value="0x8B48" name="GL_SHADER_OBJECT_EXT"/>
+ <enum value="0x8B49" name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum value="0x8B49" name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB"/>
+ <enum value="0x8B4A" name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum value="0x8B4A" name="GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_FLOATS"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_COMPONENTS" alias="MAX_VARYING_FLOATS"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_COMPONENTS_EXT"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_FLOATS_ARB"/>
+ <enum value="0x8B4C" name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8B4C" name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8B4D" name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8B4D" name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8B4E" name="GL_OBJECT_TYPE_ARB"/>
+ <enum value="0x8B4F" name="GL_SHADER_TYPE"/>
+ <enum value="0x8B4F" name="GL_OBJECT_SUBTYPE_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B50" end="0x8B7F" group="AttributeType" vendor="ARB">
+ <enum value="0x8B50" name="GL_FLOAT_VEC2"/>
+ <enum value="0x8B50" name="GL_FLOAT_VEC2_ARB"/>
+ <enum value="0x8B51" name="GL_FLOAT_VEC3"/>
+ <enum value="0x8B51" name="GL_FLOAT_VEC3_ARB"/>
+ <enum value="0x8B52" name="GL_FLOAT_VEC4"/>
+ <enum value="0x8B52" name="GL_FLOAT_VEC4_ARB"/>
+ <enum value="0x8B53" name="GL_INT_VEC2"/>
+ <enum value="0x8B53" name="GL_INT_VEC2_ARB"/>
+ <enum value="0x8B54" name="GL_INT_VEC3"/>
+ <enum value="0x8B54" name="GL_INT_VEC3_ARB"/>
+ <enum value="0x8B55" name="GL_INT_VEC4"/>
+ <enum value="0x8B55" name="GL_INT_VEC4_ARB"/>
+ <enum value="0x8B56" name="GL_BOOL"/>
+ <enum value="0x8B56" name="GL_BOOL_ARB"/>
+ <enum value="0x8B57" name="GL_BOOL_VEC2"/>
+ <enum value="0x8B57" name="GL_BOOL_VEC2_ARB"/>
+ <enum value="0x8B58" name="GL_BOOL_VEC3"/>
+ <enum value="0x8B58" name="GL_BOOL_VEC3_ARB"/>
+ <enum value="0x8B59" name="GL_BOOL_VEC4"/>
+ <enum value="0x8B59" name="GL_BOOL_VEC4_ARB"/>
+ <enum value="0x8B5A" name="GL_FLOAT_MAT2"/>
+ <enum value="0x8B5A" name="GL_FLOAT_MAT2_ARB"/>
+ <enum value="0x8B5B" name="GL_FLOAT_MAT3"/>
+ <enum value="0x8B5B" name="GL_FLOAT_MAT3_ARB"/>
+ <enum value="0x8B5C" name="GL_FLOAT_MAT4"/>
+ <enum value="0x8B5C" name="GL_FLOAT_MAT4_ARB"/>
+ <enum value="0x8B5D" name="GL_SAMPLER_1D"/>
+ <enum value="0x8B5D" name="GL_SAMPLER_1D_ARB"/>
+ <enum value="0x8B5E" name="GL_SAMPLER_2D"/>
+ <enum value="0x8B5E" name="GL_SAMPLER_2D_ARB"/>
+ <enum value="0x8B5F" name="GL_SAMPLER_3D"/>
+ <enum value="0x8B5F" name="GL_SAMPLER_3D_ARB"/>
+ <enum value="0x8B5F" name="GL_SAMPLER_3D_OES"/>
+ <enum value="0x8B60" name="GL_SAMPLER_CUBE"/>
+ <enum value="0x8B60" name="GL_SAMPLER_CUBE_ARB"/>
+ <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW"/>
+ <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW_ARB"/>
+ <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW"/>
+ <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_ARB"/>
+ <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_EXT"/>
+ <enum value="0x8B63" name="GL_SAMPLER_2D_RECT"/>
+ <enum value="0x8B63" name="GL_SAMPLER_2D_RECT_ARB"/>
+ <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW"/>
+ <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW_ARB"/>
+ <enum value="0x8B65" name="GL_FLOAT_MAT2x3"/>
+ <enum value="0x8B65" name="GL_FLOAT_MAT2x3_NV"/>
+ <enum value="0x8B66" name="GL_FLOAT_MAT2x4"/>
+ <enum value="0x8B66" name="GL_FLOAT_MAT2x4_NV"/>
+ <enum value="0x8B67" name="GL_FLOAT_MAT3x2"/>
+ <enum value="0x8B67" name="GL_FLOAT_MAT3x2_NV"/>
+ <enum value="0x8B68" name="GL_FLOAT_MAT3x4"/>
+ <enum value="0x8B68" name="GL_FLOAT_MAT3x4_NV"/>
+ <enum value="0x8B69" name="GL_FLOAT_MAT4x2"/>
+ <enum value="0x8B69" name="GL_FLOAT_MAT4x2_NV"/>
+ <enum value="0x8B6A" name="GL_FLOAT_MAT4x3"/>
+ <enum value="0x8B6A" name="GL_FLOAT_MAT4x3_NV"/>
+ <unused start="0x8B6B" end="0x8B7F" comment="For attribute types"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B80" end="0x8B8F" vendor="ARB">
+ <enum value="0x8B80" name="GL_DELETE_STATUS"/>
+ <enum value="0x8B80" name="GL_OBJECT_DELETE_STATUS_ARB"/>
+ <enum value="0x8B81" name="GL_COMPILE_STATUS"/>
+ <enum value="0x8B81" name="GL_OBJECT_COMPILE_STATUS_ARB"/>
+ <enum value="0x8B82" name="GL_LINK_STATUS"/>
+ <enum value="0x8B82" name="GL_OBJECT_LINK_STATUS_ARB"/>
+ <enum value="0x8B83" name="GL_VALIDATE_STATUS"/>
+ <enum value="0x8B83" name="GL_OBJECT_VALIDATE_STATUS_ARB"/>
+ <enum value="0x8B84" name="GL_INFO_LOG_LENGTH"/>
+ <enum value="0x8B84" name="GL_OBJECT_INFO_LOG_LENGTH_ARB"/>
+ <enum value="0x8B85" name="GL_ATTACHED_SHADERS"/>
+ <enum value="0x8B85" name="GL_OBJECT_ATTACHED_OBJECTS_ARB"/>
+ <enum value="0x8B86" name="GL_ACTIVE_UNIFORMS"/>
+ <enum value="0x8B86" name="GL_OBJECT_ACTIVE_UNIFORMS_ARB"/>
+ <enum value="0x8B87" name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum value="0x8B87" name="GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB"/>
+ <enum value="0x8B88" name="GL_SHADER_SOURCE_LENGTH"/>
+ <enum value="0x8B88" name="GL_OBJECT_SHADER_SOURCE_LENGTH_ARB"/>
+ <enum value="0x8B89" name="GL_ACTIVE_ATTRIBUTES"/>
+ <enum value="0x8B89" name="GL_OBJECT_ACTIVE_ATTRIBUTES_ARB"/>
+ <enum value="0x8B8A" name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <enum value="0x8B8A" name="GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"/>
+ <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
+ <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ <enum value="0x8B8C" name="GL_SHADING_LANGUAGE_VERSION"/>
+ <enum value="0x8B8C" name="GL_SHADING_LANGUAGE_VERSION_ARB"/>
+ <enum value="0x8B8D" name="GL_CURRENT_PROGRAM"/>
+ <enum value="0x8B8D" api="gl" name="GL_ACTIVE_PROGRAM_EXT" alias="GL_CURRENT_PROGRAM" comment="For the OpenGL version of EXT_separate_shader_objects"/>
+ <unused start="0x8B8E" end="0x8B8F" vendor="ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B90" end="0x8B9F" vendor="OES">
+ <enum value="0x8B90" name="GL_PALETTE4_RGB8_OES"/>
+ <enum value="0x8B91" name="GL_PALETTE4_RGBA8_OES"/>
+ <enum value="0x8B92" name="GL_PALETTE4_R5_G6_B5_OES"/>
+ <enum value="0x8B93" name="GL_PALETTE4_RGBA4_OES"/>
+ <enum value="0x8B94" name="GL_PALETTE4_RGB5_A1_OES"/>
+ <enum value="0x8B95" name="GL_PALETTE8_RGB8_OES"/>
+ <enum value="0x8B96" name="GL_PALETTE8_RGBA8_OES"/>
+ <enum value="0x8B97" name="GL_PALETTE8_R5_G6_B5_OES"/>
+ <enum value="0x8B98" name="GL_PALETTE8_RGBA4_OES"/>
+ <enum value="0x8B99" name="GL_PALETTE8_RGB5_A1_OES"/>
+ <enum value="0x8B9A" name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum value="0x8B9A" name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES"/>
+ <enum value="0x8B9B" name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum value="0x8B9B" name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES"/>
+ <enum value="0x8B9C" name="GL_POINT_SIZE_ARRAY_OES"/>
+ <enum value="0x8B9D" name="GL_TEXTURE_CROP_RECT_OES"/>
+ <enum value="0x8B9E" name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES"/>
+ <enum value="0x8B9F" name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8BA0" end="0x8BAF" vendor="Seaweed">
+ <unused start="0x8BA0" end="0x8BAF" vendor="Seaweed"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8BB0" end="0x8BBF" vendor="MESA">
+ <enum value="0x8BB0" name="GL_FRAGMENT_PROGRAM_POSITION_MESA"/>
+ <enum value="0x8BB1" name="GL_FRAGMENT_PROGRAM_CALLBACK_MESA"/>
+ <enum value="0x8BB2" name="GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA"/>
+ <enum value="0x8BB3" name="GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA"/>
+ <enum value="0x8BB4" name="GL_VERTEX_PROGRAM_POSITION_MESA"/>
+ <enum value="0x8BB5" name="GL_VERTEX_PROGRAM_CALLBACK_MESA"/>
+ <enum value="0x8BB6" name="GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA"/>
+ <enum value="0x8BB7" name="GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8BC0" end="0x8BFF" vendor="AMD">
+ <enum value="0x8BC0" name="GL_COUNTER_TYPE_AMD"/>
+ <enum value="0x8BC1" name="GL_COUNTER_RANGE_AMD"/>
+ <enum value="0x8BC2" name="GL_UNSIGNED_INT64_AMD"/>
+ <enum value="0x8BC3" name="GL_PERCENTAGE_AMD"/>
+ <enum value="0x8BC4" name="GL_PERFMON_RESULT_AVAILABLE_AMD"/>
+ <enum value="0x8BC5" name="GL_PERFMON_RESULT_SIZE_AMD"/>
+ <enum value="0x8BC6" name="GL_PERFMON_RESULT_AMD"/>
+ <unused start="0x8BC7" end="0x8BD1" vendor="AMD"/>
+ <enum value="0x8BD2" name="GL_TEXTURE_WIDTH_QCOM"/>
+ <enum value="0x8BD3" name="GL_TEXTURE_HEIGHT_QCOM"/>
+ <enum value="0x8BD4" name="GL_TEXTURE_DEPTH_QCOM"/>
+ <enum value="0x8BD5" name="GL_TEXTURE_INTERNAL_FORMAT_QCOM"/>
+ <enum value="0x8BD6" name="GL_TEXTURE_FORMAT_QCOM"/>
+ <enum value="0x8BD7" name="GL_TEXTURE_TYPE_QCOM"/>
+ <enum value="0x8BD8" name="GL_TEXTURE_IMAGE_VALID_QCOM"/>
+ <enum value="0x8BD9" name="GL_TEXTURE_NUM_LEVELS_QCOM"/>
+ <enum value="0x8BDA" name="GL_TEXTURE_TARGET_QCOM"/>
+ <enum value="0x8BDB" name="GL_TEXTURE_OBJECT_VALID_QCOM"/>
+ <enum value="0x8BDC" name="GL_STATE_RESTORE"/>
+ <unused start="0x8BDD" end="0x8BFF" vendor="AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8C00" end="0x8C0F" vendor="IMG">
+ <enum value="0x8C00" name="GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"/>
+ <enum value="0x8C01" name="GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"/>
+ <enum value="0x8C02" name="GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"/>
+ <enum value="0x8C03" name="GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"/>
+ <enum value="0x8C04" name="GL_MODULATE_COLOR_IMG"/>
+ <enum value="0x8C05" name="GL_RECIP_ADD_SIGNED_ALPHA_IMG"/>
+ <enum value="0x8C06" name="GL_TEXTURE_ALPHA_MODULATE_IMG"/>
+ <enum value="0x8C07" name="GL_FACTOR_ALPHA_MODULATE_IMG"/>
+ <enum value="0x8C08" name="GL_FRAGMENT_ALPHA_MODULATE_IMG"/>
+ <enum value="0x8C09" name="GL_ADD_BLEND_IMG"/>
+ <enum value="0x8C0A" name="GL_SGX_BINARY_IMG"/>
+ <unused start="0x8C0B" end="0x8C0F" vendor="IMG"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8C10" end="0x8C8F" vendor="NV" comment="For Pat Brown">
+ <enum value="0x8C10" name="GL_TEXTURE_RED_TYPE"/>
+ <enum value="0x8C10" name="GL_TEXTURE_RED_TYPE_ARB"/>
+ <enum value="0x8C11" name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum value="0x8C11" name="GL_TEXTURE_GREEN_TYPE_ARB"/>
+ <enum value="0x8C12" name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum value="0x8C12" name="GL_TEXTURE_BLUE_TYPE_ARB"/>
+ <enum value="0x8C13" name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum value="0x8C13" name="GL_TEXTURE_ALPHA_TYPE_ARB"/>
+ <enum value="0x8C14" name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum value="0x8C14" name="GL_TEXTURE_LUMINANCE_TYPE_ARB"/>
+ <enum value="0x8C15" name="GL_TEXTURE_INTENSITY_TYPE"/>
+ <enum value="0x8C15" name="GL_TEXTURE_INTENSITY_TYPE_ARB"/>
+ <enum value="0x8C16" name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum value="0x8C16" name="GL_TEXTURE_DEPTH_TYPE_ARB"/>
+ <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED"/>
+ <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED_ARB"/>
+ <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED_EXT"/>
+ <enum value="0x8C18" name="GL_TEXTURE_1D_ARRAY"/>
+ <enum value="0x8C18" name="GL_TEXTURE_1D_ARRAY_EXT"/>
+ <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY"/>
+ <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY_EXT"/>
+ <enum value="0x8C1A" name="GL_TEXTURE_2D_ARRAY"/>
+ <enum value="0x8C1A" name="GL_TEXTURE_2D_ARRAY_EXT"/>
+ <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY"/>
+ <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY_EXT"/>
+ <enum value="0x8C1C" name="GL_TEXTURE_BINDING_1D_ARRAY"/>
+ <enum value="0x8C1C" name="GL_TEXTURE_BINDING_1D_ARRAY_EXT"/>
+ <enum value="0x8C1D" name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum value="0x8C1D" name="GL_TEXTURE_BINDING_2D_ARRAY_EXT"/>
+ <unused start="0x8C1E" end="0x8C25" vendor="NV"/>
+ <enum value="0x8C26" name="GL_GEOMETRY_PROGRAM_NV"/>
+ <enum value="0x8C27" name="GL_MAX_PROGRAM_OUTPUT_VERTICES_NV"/>
+ <enum value="0x8C28" name="GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV"/>
+ <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_ARB"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_EXT"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_BINDING" comment="Equivalent to GL_TEXTURE_BUFFER_ARB query, but named more consistently"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_BINDING_EXT"/>
+ <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE"/>
+ <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE_ARB"/>
+ <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT"/>
+ <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER"/>
+ <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER_ARB"/>
+ <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER_EXT"/>
+ <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING"/>
+ <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB"/>
+ <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT"/>
+ <enum value="0x8C2E" name="GL_TEXTURE_BUFFER_FORMAT_ARB"/>
+ <enum value="0x8C2E" name="GL_TEXTURE_BUFFER_FORMAT_EXT"/>
+ <enum value="0x8C2F" name="GL_ANY_SAMPLES_PASSED"/>
+ <enum value="0x8C2F" name="GL_ANY_SAMPLES_PASSED_EXT"/>
+ <unused start="0x8C30" end="0x8C35" vendor="NV"/>
+ <enum value="0x8C36" name="GL_SAMPLE_SHADING"/>
+ <enum value="0x8C36" name="GL_SAMPLE_SHADING_ARB"/>
+ <enum value="0x8C36" name="GL_SAMPLE_SHADING_OES"/>
+ <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE"/>
+ <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE_ARB"/>
+ <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE_OES"/>
+ <unused start="0x8C38" end="0x8C39" vendor="NV"/>
+ <enum value="0x8C3A" name="GL_R11F_G11F_B10F"/>
+ <enum value="0x8C3A" name="GL_R11F_G11F_B10F_EXT"/>
+ <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV_EXT"/>
+ <enum value="0x8C3C" name="GL_RGBA_SIGNED_COMPONENTS_EXT"/>
+ <enum value="0x8C3D" name="GL_RGB9_E5"/>
+ <enum value="0x8C3D" name="GL_RGB9_E5_EXT"/>
+ <enum value="0x8C3E" name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
+ <enum value="0x8C3E" name="GL_UNSIGNED_INT_5_9_9_9_REV_EXT"/>
+ <enum value="0x8C3F" name="GL_TEXTURE_SHARED_SIZE"/>
+ <enum value="0x8C3F" name="GL_TEXTURE_SHARED_SIZE_EXT"/>
+ <enum value="0x8C40" name="GL_SRGB"/>
+ <enum value="0x8C40" name="GL_SRGB_EXT"/>
+ <enum value="0x8C41" name="GL_SRGB8"/>
+ <enum value="0x8C41" name="GL_SRGB8_EXT"/>
+ <enum value="0x8C41" name="GL_SRGB8_NV"/>
+ <enum value="0x8C42" name="GL_SRGB_ALPHA"/>
+ <enum value="0x8C42" name="GL_SRGB_ALPHA_EXT"/>
+ <enum value="0x8C43" name="GL_SRGB8_ALPHA8"/>
+ <enum value="0x8C43" name="GL_SRGB8_ALPHA8_EXT"/>
+ <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA"/>
+ <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA_EXT"/>
+ <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA_NV"/>
+ <enum value="0x8C45" name="GL_SLUMINANCE8_ALPHA8"/>
+ <enum value="0x8C45" name="GL_SLUMINANCE8_ALPHA8_EXT"/>
+ <enum value="0x8C45" name="GL_SLUMINANCE8_ALPHA8_NV"/>
+ <enum value="0x8C46" name="GL_SLUMINANCE"/>
+ <enum value="0x8C46" name="GL_SLUMINANCE_EXT"/>
+ <enum value="0x8C46" name="GL_SLUMINANCE_NV"/>
+ <enum value="0x8C47" name="GL_SLUMINANCE8"/>
+ <enum value="0x8C47" name="GL_SLUMINANCE8_EXT"/>
+ <enum value="0x8C47" name="GL_SLUMINANCE8_NV"/>
+ <enum value="0x8C48" name="GL_COMPRESSED_SRGB"/>
+ <enum value="0x8C48" name="GL_COMPRESSED_SRGB_EXT"/>
+ <enum value="0x8C49" name="GL_COMPRESSED_SRGB_ALPHA"/>
+ <enum value="0x8C49" name="GL_COMPRESSED_SRGB_ALPHA_EXT"/>
+ <enum value="0x8C4A" name="GL_COMPRESSED_SLUMINANCE"/>
+ <enum value="0x8C4A" name="GL_COMPRESSED_SLUMINANCE_EXT"/>
+ <enum value="0x8C4B" name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
+ <enum value="0x8C4B" name="GL_COMPRESSED_SLUMINANCE_ALPHA_EXT"/>
+ <enum value="0x8C4C" name="GL_COMPRESSED_SRGB_S3TC_DXT1_EXT"/>
+ <enum value="0x8C4C" name="GL_COMPRESSED_SRGB_S3TC_DXT1_NV"/>
+ <enum value="0x8C4D" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"/>
+ <enum value="0x8C4D" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV"/>
+ <enum value="0x8C4E" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"/>
+ <enum value="0x8C4E" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV"/>
+ <enum value="0x8C4F" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"/>
+ <enum value="0x8C4F" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV"/>
+ <unused start="0x8C50" end="0x8C6F" vendor="NV"/>
+ <enum value="0x8C70" name="GL_COMPRESSED_LUMINANCE_LATC1_EXT"/>
+ <enum value="0x8C71" name="GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT"/>
+ <enum value="0x8C72" name="GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ <enum value="0x8C73" name="GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ <enum value="0x8C74" name="GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8C75" name="GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8C76" name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+ <enum value="0x8C76" name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT"/>
+ <enum value="0x8C77" name="GL_BACK_PRIMARY_COLOR_NV"/>
+ <enum value="0x8C78" name="GL_BACK_SECONDARY_COLOR_NV"/>
+ <enum value="0x8C79" name="GL_TEXTURE_COORD_NV"/>
+ <enum value="0x8C7A" name="GL_CLIP_DISTANCE_NV"/>
+ <enum value="0x8C7B" name="GL_VERTEX_ID_NV"/>
+ <enum value="0x8C7C" name="GL_PRIMITIVE_ID_NV"/>
+ <enum value="0x8C7D" name="GL_GENERIC_ATTRIB_NV"/>
+ <enum value="0x8C7E" name="GL_TRANSFORM_FEEDBACK_ATTRIBS_NV"/>
+ <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+ <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT"/>
+ <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV"/>
+ <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
+ <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT"/>
+ <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV"/>
+ <enum value="0x8C81" name="GL_ACTIVE_VARYINGS_NV"/>
+ <enum value="0x8C82" name="GL_ACTIVE_VARYING_MAX_LENGTH_NV"/>
+ <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+ <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS_EXT"/>
+ <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS_NV"/>
+ <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+ <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT"/>
+ <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START_NV"/>
+ <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+ <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT"/>
+ <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV"/>
+ <enum value="0x8C86" name="GL_TRANSFORM_FEEDBACK_RECORD_NV"/>
+ <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED"/>
+ <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED_EXT"/>
+ <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED_NV"/>
+ <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+ <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT"/>
+ <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV"/>
+ <enum value="0x8C89" name="GL_RASTERIZER_DISCARD"/>
+ <enum value="0x8C89" name="GL_RASTERIZER_DISCARD_EXT"/>
+ <enum value="0x8C89" name="GL_RASTERIZER_DISCARD_NV"/>
+ <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
+ <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT"/>
+ <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV"/>
+ <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
+ <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT"/>
+ <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV"/>
+ <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS"/>
+ <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS_EXT"/>
+ <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS_NV"/>
+ <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS"/>
+ <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS_EXT"/>
+ <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS_NV"/>
+ <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER_EXT"/>
+ <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER_NV"/>
+ <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+ <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT"/>
+ <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8C90" end="0x8C9F" vendor="QCOM" comment="For Affie Munshi, OpenGL ES extensions">
+ <!-- Reassigned from ATI to QCOM at time of
+ mobile/desktop split (bug 5874) -->
+ <unused start="0x8C90" end="0x8C91" vendor="QCOM"/>
+ <enum value="0x8C92" name="GL_ATC_RGB_AMD"/>
+ <enum value="0x8C93" name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD"/>
+ <unused start="0x8C94" end="0x8C9F" vendor="QCOM"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8CA0" end="0x8CAF" vendor="ARB">
+ <enum value="0x8CA0" name="GL_POINT_SPRITE_COORD_ORIGIN"/>
+ <enum value="0x8CA1" name="GL_LOWER_LEFT"/>
+ <enum value="0x8CA2" name="GL_UPPER_LEFT"/>
+ <enum value="0x8CA3" name="GL_STENCIL_BACK_REF"/>
+ <enum value="0x8CA4" name="GL_STENCIL_BACK_VALUE_MASK"/>
+ <enum value="0x8CA5" name="GL_STENCIL_BACK_WRITEMASK"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_APPLE"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_EXT"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_NV"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_EXT"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_OES"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_EXT"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_OES"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_ANGLE"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_APPLE"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_EXT"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_NV"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_ANGLE"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_APPLE"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_EXT"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_NV"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_APPLE"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_EXT"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_NV"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_ANGLE"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_APPLE"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_EXT"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_NV"/>
+ <enum value="0x8CAC" name="GL_DEPTH_COMPONENT32F"/>
+ <enum value="0x8CAD" name="GL_DEPTH32F_STENCIL8"/>
+ <unused start="0x8CAE" end="0x8CAF" vendor="ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8CB0" end="0x8CCF" vendor="ZiiLabs" comment="For Barthold Lichtenbelt 2004/12/1">
+ <unused start="0x8CB0" end="0x8CCF" vendor="ZiiLabs"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8CD0" end="0x8D5F" vendor="ARB" comment="Framebuffer object specification + headroom">
+ <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT"/>
+ <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES"/>
+ <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT"/>
+ <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES"/>
+ <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT"/>
+ <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES"/>
+ <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT"/>
+ <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE_EXT"/>
+ <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE_OES"/>
+ <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT"/>
+ <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES"/>
+ <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT"/>
+ <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES"/>
+ <unused start="0x8CD8" vendor="ARB" comment="Removed 2005/09/26 in revision #117 of the FBO extension spec"/>
+ <!-- <enum value="0x8CD8" name="GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT"/> -->
+ <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"/>
+ <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT"/>
+ <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES"/>
+ <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT"/>
+ <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES"/>
+ <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+ <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT"/>
+ <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES"/>
+ <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+ <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT"/>
+ <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES"/>
+ <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED_EXT"/>
+ <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED_OES"/>
+ <unused start="0x8CDE" vendor="ARB" comment="Removed 2005/05/31 in revision #113 of the FBO extension spec"/>
+ <!-- <enum value="0x8CDE" name="GL_FRAMEBUFFER_STATUS_ERROR_EXT"/> -->
+ <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
+ <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS_NV"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_EXT"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_NV"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_OES"/>
+ <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1"/>
+ <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_EXT"/>
+ <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_NV"/>
+ <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2"/>
+ <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_EXT"/>
+ <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_NV"/>
+ <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3"/>
+ <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_EXT"/>
+ <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_NV"/>
+ <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4"/>
+ <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_EXT"/>
+ <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_NV"/>
+ <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5"/>
+ <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_EXT"/>
+ <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_NV"/>
+ <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6"/>
+ <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_EXT"/>
+ <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_NV"/>
+ <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7"/>
+ <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_EXT"/>
+ <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_NV"/>
+ <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8"/>
+ <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_EXT"/>
+ <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_NV"/>
+ <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9"/>
+ <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_EXT"/>
+ <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_NV"/>
+ <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10"/>
+ <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_EXT"/>
+ <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_NV"/>
+ <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11"/>
+ <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_EXT"/>
+ <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_NV"/>
+ <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12"/>
+ <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_EXT"/>
+ <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_NV"/>
+ <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13"/>
+ <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_EXT"/>
+ <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_NV"/>
+ <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14"/>
+ <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_EXT"/>
+ <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_NV"/>
+ <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15"/>
+ <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_EXT"/>
+ <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_NV"/>
+ <unused start="0x8CF0" end="0x8CFF" vendor="ARB" comment="For color attachments 16-31"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_EXT"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_OES"/>
+ <unused start="0x8D01" end="0x8D1F" vendor="ARB" comment="For depth attachments 16-31"/>
+ <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT"/>
+ <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_EXT"/>
+ <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_OES"/>
+ <unused start="0x8D21" end="0x8D3F" vendor="ARB" comment="For stencil attachments 16-31"/>
+ <enum value="0x8D40" name="GL_FRAMEBUFFER"/>
+ <enum value="0x8D40" name="GL_FRAMEBUFFER_EXT"/>
+ <enum value="0x8D40" name="GL_FRAMEBUFFER_OES"/>
+ <enum value="0x8D41" name="GL_RENDERBUFFER"/>
+ <enum value="0x8D41" name="GL_RENDERBUFFER_EXT"/>
+ <enum value="0x8D41" name="GL_RENDERBUFFER_OES"/>
+ <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH"/>
+ <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_EXT"/>
+ <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_OES"/>
+ <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_EXT"/>
+ <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_OES"/>
+ <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_EXT"/>
+ <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
+ <unused start="0x8D45" vendor="ARB" comment="Was for GL_STENCIL_INDEX_EXT, but now use core STENCIL_INDEX instead"/>
+ <enum value="0x8D46" name="GL_STENCIL_INDEX1"/>
+ <enum value="0x8D46" name="GL_STENCIL_INDEX1_EXT"/>
+ <enum value="0x8D46" name="GL_STENCIL_INDEX1_OES"/>
+ <enum value="0x8D47" name="GL_STENCIL_INDEX4"/>
+ <enum value="0x8D47" name="GL_STENCIL_INDEX4_EXT"/>
+ <enum value="0x8D47" name="GL_STENCIL_INDEX4_OES"/>
+ <enum value="0x8D48" name="GL_STENCIL_INDEX8"/>
+ <enum value="0x8D48" name="GL_STENCIL_INDEX8_EXT"/>
+ <enum value="0x8D48" name="GL_STENCIL_INDEX8_OES"/>
+ <enum value="0x8D49" name="GL_STENCIL_INDEX16"/>
+ <enum value="0x8D49" name="GL_STENCIL_INDEX16_EXT"/>
+ <unused start="0x8D4A" end="0x8D4F" vendor="ARB" comment="For additional stencil formats"/>
+ <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_EXT"/>
+ <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_OES"/>
+ <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_EXT"/>
+ <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
+ <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_EXT"/>
+ <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
+ <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_EXT"/>
+ <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
+ <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_EXT"/>
+ <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
+ <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_EXT"/>
+ <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_ANGLE"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_APPLE"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_EXT"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_NV"/>
+ <unused start="0x8D58" end="0x8D5F" vendor="ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8D60" end="0x8D6F" vendor="OES">
+ <enum value="0x8D60" name="GL_TEXTURE_GEN_STR_OES"/>
+ <enum value="0x8D61" name="GL_HALF_FLOAT_OES"/>
+ <enum value="0x8D62" name="GL_RGB565_OES"/>
+ <enum value="0x8D62" name="GL_RGB565"/>
+ <unused start="0x8D63" vendor="OES" comment="Was GL_TEXTURE_IMMUTABLE_LEVELS in draft ES 3.0 spec"/>
+ <enum value="0x8D64" name="GL_ETC1_RGB8_OES"/>
+ <enum value="0x8D65" name="GL_TEXTURE_EXTERNAL_OES"/>
+ <enum value="0x8D66" name="GL_SAMPLER_EXTERNAL_OES"/>
+ <enum value="0x8D67" name="GL_TEXTURE_BINDING_EXTERNAL_OES"/>
+ <enum value="0x8D68" name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES"/>
+ <enum value="0x8D69" name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum value="0x8D6A" name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum value="0x8D6A" name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT"/>
+ <enum value="0x8D6B" name="GL_MAX_ELEMENT_INDEX"/>
+ <enum value="0x8D6C" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT"/>
+ <unused start="0x8D6D" end="0x8D6F" vendor="OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8D70" end="0x8DEF" vendor="NV" comment="For Pat Brown 2005/10/13">
+ <enum value="0x8D70" name="GL_RGBA32UI"/>
+ <enum value="0x8D70" name="GL_RGBA32UI_EXT"/>
+ <enum value="0x8D71" name="GL_RGB32UI"/>
+ <enum value="0x8D71" name="GL_RGB32UI_EXT"/>
+ <enum value="0x8D72" name="GL_ALPHA32UI_EXT"/>
+ <enum value="0x8D73" name="GL_INTENSITY32UI_EXT"/>
+ <enum value="0x8D74" name="GL_LUMINANCE32UI_EXT"/>
+ <enum value="0x8D75" name="GL_LUMINANCE_ALPHA32UI_EXT"/>
+ <enum value="0x8D76" name="GL_RGBA16UI"/>
+ <enum value="0x8D76" name="GL_RGBA16UI_EXT"/>
+ <enum value="0x8D77" name="GL_RGB16UI"/>
+ <enum value="0x8D77" name="GL_RGB16UI_EXT"/>
+ <enum value="0x8D78" name="GL_ALPHA16UI_EXT"/>
+ <enum value="0x8D79" name="GL_INTENSITY16UI_EXT"/>
+ <enum value="0x8D7A" name="GL_LUMINANCE16UI_EXT"/>
+ <enum value="0x8D7B" name="GL_LUMINANCE_ALPHA16UI_EXT"/>
+ <enum value="0x8D7C" name="GL_RGBA8UI"/>
+ <enum value="0x8D7C" name="GL_RGBA8UI_EXT"/>
+ <enum value="0x8D7D" name="GL_RGB8UI"/>
+ <enum value="0x8D7D" name="GL_RGB8UI_EXT"/>
+ <enum value="0x8D7E" name="GL_ALPHA8UI_EXT"/>
+ <enum value="0x8D7F" name="GL_INTENSITY8UI_EXT"/>
+ <enum value="0x8D80" name="GL_LUMINANCE8UI_EXT"/>
+ <enum value="0x8D81" name="GL_LUMINANCE_ALPHA8UI_EXT"/>
+ <enum value="0x8D82" name="GL_RGBA32I"/>
+ <enum value="0x8D82" name="GL_RGBA32I_EXT"/>
+ <enum value="0x8D83" name="GL_RGB32I"/>
+ <enum value="0x8D83" name="GL_RGB32I_EXT"/>
+ <enum value="0x8D84" name="GL_ALPHA32I_EXT"/>
+ <enum value="0x8D85" name="GL_INTENSITY32I_EXT"/>
+ <enum value="0x8D86" name="GL_LUMINANCE32I_EXT"/>
+ <enum value="0x8D87" name="GL_LUMINANCE_ALPHA32I_EXT"/>
+ <enum value="0x8D88" name="GL_RGBA16I"/>
+ <enum value="0x8D88" name="GL_RGBA16I_EXT"/>
+ <enum value="0x8D89" name="GL_RGB16I"/>
+ <enum value="0x8D89" name="GL_RGB16I_EXT"/>
+ <enum value="0x8D8A" name="GL_ALPHA16I_EXT"/>
+ <enum value="0x8D8B" name="GL_INTENSITY16I_EXT"/>
+ <enum value="0x8D8C" name="GL_LUMINANCE16I_EXT"/>
+ <enum value="0x8D8D" name="GL_LUMINANCE_ALPHA16I_EXT"/>
+ <enum value="0x8D8E" name="GL_RGBA8I"/>
+ <enum value="0x8D8E" name="GL_RGBA8I_EXT"/>
+ <enum value="0x8D8F" name="GL_RGB8I"/>
+ <enum value="0x8D8F" name="GL_RGB8I_EXT"/>
+ <enum value="0x8D90" name="GL_ALPHA8I_EXT"/>
+ <enum value="0x8D91" name="GL_INTENSITY8I_EXT"/>
+ <enum value="0x8D92" name="GL_LUMINANCE8I_EXT"/>
+ <enum value="0x8D93" name="GL_LUMINANCE_ALPHA8I_EXT"/>
+ <enum value="0x8D94" name="GL_RED_INTEGER"/>
+ <enum value="0x8D94" name="GL_RED_INTEGER_EXT"/>
+ <enum value="0x8D95" name="GL_GREEN_INTEGER"/>
+ <enum value="0x8D95" name="GL_GREEN_INTEGER_EXT"/>
+ <enum value="0x8D96" name="GL_BLUE_INTEGER"/>
+ <enum value="0x8D96" name="GL_BLUE_INTEGER_EXT"/>
+ <enum value="0x8D97" name="GL_ALPHA_INTEGER"/>
+ <enum value="0x8D97" name="GL_ALPHA_INTEGER_EXT"/>
+ <enum value="0x8D98" name="GL_RGB_INTEGER"/>
+ <enum value="0x8D98" name="GL_RGB_INTEGER_EXT"/>
+ <enum value="0x8D99" name="GL_RGBA_INTEGER"/>
+ <enum value="0x8D99" name="GL_RGBA_INTEGER_EXT"/>
+ <enum value="0x8D9A" name="GL_BGR_INTEGER"/>
+ <enum value="0x8D9A" name="GL_BGR_INTEGER_EXT"/>
+ <enum value="0x8D9B" name="GL_BGRA_INTEGER"/>
+ <enum value="0x8D9B" name="GL_BGRA_INTEGER_EXT"/>
+ <enum value="0x8D9C" name="GL_LUMINANCE_INTEGER_EXT"/>
+ <enum value="0x8D9D" name="GL_LUMINANCE_ALPHA_INTEGER_EXT"/>
+ <enum value="0x8D9E" name="GL_RGBA_INTEGER_MODE_EXT"/>
+ <enum value="0x8D9F" name="GL_INT_2_10_10_10_REV"/>
+ <enum value="0x8DA0" name="GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV"/>
+ <enum value="0x8DA1" name="GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV"/>
+ <enum value="0x8DA2" name="GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8DA3" name="GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8DA4" name="GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8DA5" name="GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV"/>
+ <enum value="0x8DA6" name="GL_MAX_PROGRAM_GENERIC_RESULTS_NV"/>
+ <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED"/>
+ <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB"/>
+ <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"/>
+ <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB"/>
+ <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum value="0x8DA9" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB"/>
+ <enum value="0x8DA9" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
+ <!-- Also see the odd namespace "NVTransformFeedbackToken" above -->
+ <enum value="0x8DAA" name="GL_LAYER_NV"/>
+ <enum value="0x8DAB" name="GL_DEPTH_COMPONENT32F_NV"/>
+ <enum value="0x8DAC" name="GL_DEPTH32F_STENCIL8_NV"/>
+ <enum value="0x8DAD" name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ <enum value="0x8DAD" name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV"/>
+ <enum value="0x8DAE" name="GL_SHADER_INCLUDE_ARB"/>
+ <enum value="0x8DAF" name="GL_DEPTH_BUFFER_FLOAT_MODE_NV"/>
+ <unused start="0x8DB0" end="0x8DB8" vendor="NV"/>
+ <enum value="0x8DB9" name="GL_FRAMEBUFFER_SRGB"/>
+ <enum value="0x8DB9" name="GL_FRAMEBUFFER_SRGB_EXT"/>
+ <enum value="0x8DBA" name="GL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1"/>
+ <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1_EXT"/>
+ <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
+ <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1_EXT"/>
+ <enum value="0x8DBD" name="GL_COMPRESSED_RED_GREEN_RGTC2_EXT"/>
+ <enum value="0x8DBD" name="GL_COMPRESSED_RG_RGTC2"/>
+ <enum value="0x8DBE" name="GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"/>
+ <enum value="0x8DBE" name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
+ <enum value="0x8DC0" name="GL_SAMPLER_1D_ARRAY"/>
+ <enum value="0x8DC0" name="GL_SAMPLER_1D_ARRAY_EXT"/>
+ <enum value="0x8DC1" name="GL_SAMPLER_2D_ARRAY"/>
+ <enum value="0x8DC1" name="GL_SAMPLER_2D_ARRAY_EXT"/>
+ <enum value="0x8DC2" name="GL_SAMPLER_BUFFER"/>
+ <enum value="0x8DC2" name="GL_SAMPLER_BUFFER_EXT"/>
+ <enum value="0x8DC3" name="GL_SAMPLER_1D_ARRAY_SHADOW"/>
+ <enum value="0x8DC3" name="GL_SAMPLER_1D_ARRAY_SHADOW_EXT"/>
+ <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+ <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW_EXT"/>
+ <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW_NV"/>
+ <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW"/>
+ <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW_EXT"/>
+ <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW_NV"/>
+ <enum value="0x8DC6" name="GL_UNSIGNED_INT_VEC2"/>
+ <enum value="0x8DC6" name="GL_UNSIGNED_INT_VEC2_EXT"/>
+ <enum value="0x8DC7" name="GL_UNSIGNED_INT_VEC3"/>
+ <enum value="0x8DC7" name="GL_UNSIGNED_INT_VEC3_EXT"/>
+ <enum value="0x8DC8" name="GL_UNSIGNED_INT_VEC4"/>
+ <enum value="0x8DC8" name="GL_UNSIGNED_INT_VEC4_EXT"/>
+ <enum value="0x8DC9" name="GL_INT_SAMPLER_1D"/>
+ <enum value="0x8DC9" name="GL_INT_SAMPLER_1D_EXT"/>
+ <enum value="0x8DCA" name="GL_INT_SAMPLER_2D"/>
+ <enum value="0x8DCA" name="GL_INT_SAMPLER_2D_EXT"/>
+ <enum value="0x8DCB" name="GL_INT_SAMPLER_3D"/>
+ <enum value="0x8DCB" name="GL_INT_SAMPLER_3D_EXT"/>
+ <enum value="0x8DCC" name="GL_INT_SAMPLER_CUBE"/>
+ <enum value="0x8DCC" name="GL_INT_SAMPLER_CUBE_EXT"/>
+ <enum value="0x8DCD" name="GL_INT_SAMPLER_2D_RECT"/>
+ <enum value="0x8DCD" name="GL_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum value="0x8DCE" name="GL_INT_SAMPLER_1D_ARRAY"/>
+ <enum value="0x8DCE" name="GL_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum value="0x8DCF" name="GL_INT_SAMPLER_2D_ARRAY"/>
+ <enum value="0x8DCF" name="GL_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER"/>
+ <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER_EXT"/>
+ <enum value="0x8DD1" name="GL_UNSIGNED_INT_SAMPLER_1D"/>
+ <enum value="0x8DD1" name="GL_UNSIGNED_INT_SAMPLER_1D_EXT"/>
+ <enum value="0x8DD2" name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+ <enum value="0x8DD2" name="GL_UNSIGNED_INT_SAMPLER_2D_EXT"/>
+ <enum value="0x8DD3" name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+ <enum value="0x8DD3" name="GL_UNSIGNED_INT_SAMPLER_3D_EXT"/>
+ <enum value="0x8DD4" name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+ <enum value="0x8DD4" name="GL_UNSIGNED_INT_SAMPLER_CUBE_EXT"/>
+ <enum value="0x8DD5" name="GL_UNSIGNED_INT_SAMPLER_2D_RECT"/>
+ <enum value="0x8DD5" name="GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum value="0x8DD6" name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY"/>
+ <enum value="0x8DD6" name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum value="0x8DD7" name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+ <enum value="0x8DD7" name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER"/>
+ <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT"/>
+ <enum value="0x8DD9" name="GL_GEOMETRY_SHADER"/>
+ <enum value="0x8DD9" name="GL_GEOMETRY_SHADER_ARB"/>
+ <enum value="0x8DD9" name="GL_GEOMETRY_SHADER_EXT"/>
+ <enum value="0x8DDA" name="GL_GEOMETRY_VERTICES_OUT_ARB"/>
+ <enum value="0x8DDA" name="GL_GEOMETRY_VERTICES_OUT_EXT"/>
+ <enum value="0x8DDB" name="GL_GEOMETRY_INPUT_TYPE_ARB"/>
+ <enum value="0x8DDB" name="GL_GEOMETRY_INPUT_TYPE_EXT"/>
+ <enum value="0x8DDC" name="GL_GEOMETRY_OUTPUT_TYPE_ARB"/>
+ <enum value="0x8DDC" name="GL_GEOMETRY_OUTPUT_TYPE_EXT"/>
+ <enum value="0x8DDD" name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB"/>
+ <enum value="0x8DDD" name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT"/>
+ <enum value="0x8DDE" name="GL_MAX_VERTEX_VARYING_COMPONENTS_ARB"/>
+ <enum value="0x8DDE" name="GL_MAX_VERTEX_VARYING_COMPONENTS_EXT"/>
+ <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB"/>
+ <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
+ <enum value="0x8DE0" name="GL_MAX_GEOMETRY_OUTPUT_VERTICES"/>
+ <enum value="0x8DE0" name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB"/>
+ <enum value="0x8DE0" name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT"/>
+ <enum value="0x8DE1" name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum value="0x8DE1" name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB"/>
+ <enum value="0x8DE1" name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT"/>
+ <enum value="0x8DE2" name="GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT"/>
+ <enum value="0x8DE3" name="GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT"/>
+ <enum value="0x8DE4" name="GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT"/>
+ <enum value="0x8DE5" name="GL_ACTIVE_SUBROUTINES"/>
+ <enum value="0x8DE6" name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+ <enum value="0x8DE7" name="GL_MAX_SUBROUTINES"/>
+ <enum value="0x8DE8" name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum value="0x8DE9" name="GL_NAMED_STRING_LENGTH_ARB"/>
+ <enum value="0x8DEA" name="GL_NAMED_STRING_TYPE_ARB"/>
+ <unused start="0x8DEB" end="0x8DEC" vendor="NV"/>
+ <enum value="0x8DED" name="GL_MAX_BINDABLE_UNIFORM_SIZE_EXT"/>
+ <enum value="0x8DEE" name="GL_UNIFORM_BUFFER_EXT"/>
+ <enum value="0x8DEF" name="GL_UNIFORM_BUFFER_BINDING_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8DF0" end="0x8E0F" vendor="OES">
+ <enum value="0x8DF0" name="GL_LOW_FLOAT"/>
+ <enum value="0x8DF1" name="GL_MEDIUM_FLOAT"/>
+ <enum value="0x8DF2" name="GL_HIGH_FLOAT"/>
+ <enum value="0x8DF3" name="GL_LOW_INT"/>
+ <enum value="0x8DF4" name="GL_MEDIUM_INT"/>
+ <enum value="0x8DF5" name="GL_HIGH_INT"/>
+ <enum value="0x8DF6" name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
+ <enum value="0x8DF7" name="GL_INT_10_10_10_2_OES"/>
+ <enum value="0x8DF8" name="GL_SHADER_BINARY_FORMATS"/>
+ <enum value="0x8DF9" name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum value="0x8DFA" name="GL_SHADER_COMPILER"/>
+ <enum value="0x8DFB" name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum value="0x8DFC" name="GL_MAX_VARYING_VECTORS"/>
+ <enum value="0x8DFD" name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <unused start="0x8DFE" end="0x8E0F" vendor="OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8E10" end="0x8E8F" vendor="NV" comment="For Michael Gold 2006/08/07">
+ <enum value="0x8E10" name="GL_RENDERBUFFER_COLOR_SAMPLES_NV"/>
+ <enum value="0x8E11" name="GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <enum value="0x8E12" name="GL_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <enum value="0x8E13" name="GL_QUERY_WAIT"/>
+ <enum value="0x8E13" name="GL_QUERY_WAIT_NV"/>
+ <enum value="0x8E14" name="GL_QUERY_NO_WAIT"/>
+ <enum value="0x8E14" name="GL_QUERY_NO_WAIT_NV"/>
+ <enum value="0x8E15" name="GL_QUERY_BY_REGION_WAIT"/>
+ <enum value="0x8E15" name="GL_QUERY_BY_REGION_WAIT_NV"/>
+ <enum value="0x8E16" name="GL_QUERY_BY_REGION_NO_WAIT"/>
+ <enum value="0x8E16" name="GL_QUERY_BY_REGION_NO_WAIT_NV"/>
+ <enum value="0x8E17" name="GL_QUERY_WAIT_INVERTED"/>
+ <enum value="0x8E18" name="GL_QUERY_NO_WAIT_INVERTED"/>
+ <enum value="0x8E19" name="GL_QUERY_BY_REGION_WAIT_INVERTED"/>
+ <enum value="0x8E1A" name="GL_QUERY_BY_REGION_NO_WAIT_INVERTED"/>
+ <unused start="0x8E1B" end="0x8E1D" vendor="NV"/>
+ <enum value="0x8E1E" name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E1E" name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT"/>
+ <enum value="0x8E1F" name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E1F" name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT"/>
+ <enum value="0x8E20" name="GL_COLOR_SAMPLES_NV"/>
+ <unused start="0x8E21" vendor="NV"/>
+ <enum value="0x8E22" name="GL_TRANSFORM_FEEDBACK"/>
+ <enum value="0x8E22" name="GL_TRANSFORM_FEEDBACK_NV"/>
+ <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_PAUSED" alias="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV"/>
+ <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_ACTIVE" alias="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV"/>
+ <enum value="0x8E25" name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <enum value="0x8E25" name="GL_TRANSFORM_FEEDBACK_BINDING_NV"/>
+ <enum value="0x8E26" name="GL_FRAME_NV"/>
+ <enum value="0x8E27" name="GL_FIELDS_NV"/>
+ <enum value="0x8E28" name="GL_CURRENT_TIME_NV"/>
+ <enum value="0x8E28" name="GL_TIMESTAMP"/>
+ <enum value="0x8E28" name="GL_TIMESTAMP_EXT"/>
+ <enum value="0x8E29" name="GL_NUM_FILL_STREAMS_NV"/>
+ <enum value="0x8E2A" name="GL_PRESENT_TIME_NV"/>
+ <enum value="0x8E2B" name="GL_PRESENT_DURATION_NV"/>
+ <enum value="0x8E2C" name="GL_DEPTH_COMPONENT16_NONLINEAR_NV"/>
+ <enum value="0x8E2D" name="GL_PROGRAM_MATRIX_EXT"/>
+ <enum value="0x8E2E" name="GL_TRANSPOSE_PROGRAM_MATRIX_EXT"/>
+ <enum value="0x8E2F" name="GL_PROGRAM_MATRIX_STACK_DEPTH_EXT"/>
+ <unused start="0x8E30" end="0x8E41" vendor="NV"/>
+ <enum value="0x8E42" name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum value="0x8E42" name="GL_TEXTURE_SWIZZLE_R_EXT"/>
+ <enum value="0x8E43" name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum value="0x8E43" name="GL_TEXTURE_SWIZZLE_G_EXT"/>
+ <enum value="0x8E44" name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum value="0x8E44" name="GL_TEXTURE_SWIZZLE_B_EXT"/>
+ <enum value="0x8E45" name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum value="0x8E45" name="GL_TEXTURE_SWIZZLE_A_EXT"/>
+ <enum value="0x8E46" name="GL_TEXTURE_SWIZZLE_RGBA"/>
+ <enum value="0x8E46" name="GL_TEXTURE_SWIZZLE_RGBA_EXT"/>
+ <enum value="0x8E47" name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum value="0x8E48" name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
+ <enum value="0x8E49" name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
+ <enum value="0x8E4A" name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum value="0x8E4B" name="GL_COMPATIBLE_SUBROUTINES"/>
+ <enum value="0x8E4C" name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
+ <enum value="0x8E4C" name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT"/>
+ <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION_EXT"/>
+ <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION_EXT"/>
+ <enum value="0x8E4F" name="GL_PROVOKING_VERTEX"/>
+ <enum value="0x8E4F" name="GL_PROVOKING_VERTEX_EXT"/>
+ <enum value="0x8E50" name="GL_SAMPLE_POSITION"/>
+ <enum value="0x8E50" name="GL_SAMPLE_POSITION_NV"/>
+ <enum value="0x8E51" name="GL_SAMPLE_MASK"/>
+ <enum value="0x8E51" name="GL_SAMPLE_MASK_NV"/>
+ <enum value="0x8E52" name="GL_SAMPLE_MASK_VALUE"/>
+ <enum value="0x8E52" name="GL_SAMPLE_MASK_VALUE_NV"/>
+ <enum value="0x8E53" name="GL_TEXTURE_BINDING_RENDERBUFFER_NV"/>
+ <enum value="0x8E54" name="GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV"/>
+ <enum value="0x8E55" name="GL_TEXTURE_RENDERBUFFER_NV"/>
+ <enum value="0x8E56" name="GL_SAMPLER_RENDERBUFFER_NV"/>
+ <enum value="0x8E57" name="GL_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum value="0x8E58" name="GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum value="0x8E59" name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum value="0x8E59" name="GL_MAX_SAMPLE_MASK_WORDS_NV"/>
+ <enum value="0x8E5A" name="GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV"/>
+ <enum value="0x8E5A" name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum value="0x8E5A" name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT"/>
+ <enum value="0x8E5B" name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum value="0x8E5B" name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES"/>
+ <enum value="0x8E5B" name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum value="0x8E5C" name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum value="0x8E5C" name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES"/>
+ <enum value="0x8E5C" name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum value="0x8E5D" name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"/>
+ <enum value="0x8E5D" name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES"/>
+ <enum value="0x8E5D" name="GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV"/>
+ <enum value="0x8E5E" name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum value="0x8E5E" name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum value="0x8E5E" name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <enum value="0x8E5F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum value="0x8E5F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum value="0x8E5F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <unused start="0x8E60" end="0x8E6F" vendor="NV"/>
+ <enum value="0x8E70" name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
+ <enum value="0x8E71" name="GL_MAX_VERTEX_STREAMS"/>
+ <enum value="0x8E72" name="GL_PATCH_VERTICES"/>
+ <enum value="0x8E72" name="GL_PATCH_VERTICES_EXT"/>
+ <enum value="0x8E73" name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+ <enum value="0x8E73" name="GL_PATCH_DEFAULT_INNER_LEVEL_EXT"/>
+ <enum value="0x8E74" name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+ <enum value="0x8E74" name="GL_PATCH_DEFAULT_OUTER_LEVEL_EXT"/>
+ <enum value="0x8E75" name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
+ <enum value="0x8E75" name="GL_TESS_CONTROL_OUTPUT_VERTICES_EXT"/>
+ <enum value="0x8E76" name="GL_TESS_GEN_MODE"/>
+ <enum value="0x8E76" name="GL_TESS_GEN_MODE_EXT"/>
+ <enum value="0x8E77" name="GL_TESS_GEN_SPACING"/>
+ <enum value="0x8E77" name="GL_TESS_GEN_SPACING_EXT"/>
+ <enum value="0x8E78" name="GL_TESS_GEN_VERTEX_ORDER"/>
+ <enum value="0x8E78" name="GL_TESS_GEN_VERTEX_ORDER_EXT"/>
+ <enum value="0x8E79" name="GL_TESS_GEN_POINT_MODE"/>
+ <enum value="0x8E79" name="GL_TESS_GEN_POINT_MODE_EXT"/>
+ <enum value="0x8E7A" name="GL_ISOLINES"/>
+ <enum value="0x8E7A" name="GL_ISOLINES_EXT"/>
+ <enum value="0x8E7B" name="GL_FRACTIONAL_ODD"/>
+ <enum value="0x8E7B" name="GL_FRACTIONAL_ODD_EXT"/>
+ <enum value="0x8E7C" name="GL_FRACTIONAL_EVEN"/>
+ <enum value="0x8E7C" name="GL_FRACTIONAL_EVEN_EXT"/>
+ <enum value="0x8E7D" name="GL_MAX_PATCH_VERTICES"/>
+ <enum value="0x8E7D" name="GL_MAX_PATCH_VERTICES_EXT"/>
+ <enum value="0x8E7E" name="GL_MAX_TESS_GEN_LEVEL"/>
+ <enum value="0x8E7E" name="GL_MAX_TESS_GEN_LEVEL_EXT"/>
+ <enum value="0x8E7F" name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E7F" name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT"/>
+ <enum value="0x8E80" name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E80" name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT"/>
+ <enum value="0x8E81" name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8E81" name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum value="0x8E82" name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8E82" name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum value="0x8E83" name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"/>
+ <enum value="0x8E83" name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT"/>
+ <enum value="0x8E84" name="GL_MAX_TESS_PATCH_COMPONENTS"/>
+ <enum value="0x8E84" name="GL_MAX_TESS_PATCH_COMPONENTS_EXT"/>
+ <enum value="0x8E85" name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum value="0x8E85" name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT"/>
+ <enum value="0x8E86" name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
+ <enum value="0x8E86" name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT"/>
+ <enum value="0x8E87" name="GL_TESS_EVALUATION_SHADER"/>
+ <enum value="0x8E87" name="GL_TESS_EVALUATION_SHADER_EXT"/>
+ <enum value="0x8E88" name="GL_TESS_CONTROL_SHADER"/>
+ <enum value="0x8E88" name="GL_TESS_CONTROL_SHADER_EXT"/>
+ <enum value="0x8E89" name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum value="0x8E89" name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT"/>
+ <enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT"/>
+ <unused start="0x8E8B" vendor="NV"/>
+ <enum value="0x8E8C" name="GL_COMPRESSED_RGBA_BPTC_UNORM"/>
+ <enum value="0x8E8C" name="GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"/>
+ <enum value="0x8E8D" name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM"/>
+ <enum value="0x8E8D" name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"/>
+ <enum value="0x8E8E" name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT"/>
+ <enum value="0x8E8E" name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"/>
+ <enum value="0x8E8F" name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT"/>
+ <enum value="0x8E8F" name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8E90" end="0x8E9F" vendor="QNX" comment="For QNX_texture_tiling, QNX_complex_polygon, QNX_stippled_lines (Khronos bug 696)">
+ <unused start="0x8E90" end="0x8E9F" vendor="QNX"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8EA0" end="0x8EAF" vendor="IMG">
+ <unused start="0x8EA0" end="0x8EAF" vendor="IMG"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8EB0" end="0x8EBF" vendor="OES" comment="For Affie Munshi 2007/07/20">
+ <unused start="0x8EB0" end="0x8EBF" vendor="OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8EC0" end="0x8ECF" vendor="Vincent">
+ <unused start="0x8EC0" end="0x8ECF" vendor="Vincent"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8ED0" end="0x8F4F" vendor="NV" comment="For Pat Brown, Khronos bug 3191">
+ <enum value="0x8ED0" name="GL_COVERAGE_COMPONENT_NV"/>
+ <enum value="0x8ED1" name="GL_COVERAGE_COMPONENT4_NV"/>
+ <enum value="0x8ED2" name="GL_COVERAGE_ATTACHMENT_NV"/>
+ <enum value="0x8ED3" name="GL_COVERAGE_BUFFERS_NV"/>
+ <enum value="0x8ED4" name="GL_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x8ED5" name="GL_COVERAGE_ALL_FRAGMENTS_NV"/>
+ <enum value="0x8ED6" name="GL_COVERAGE_EDGE_FRAGMENTS_NV"/>
+ <enum value="0x8ED7" name="GL_COVERAGE_AUTOMATIC_NV"/>
+ <unused start="0x8ED8" end="0x8F1C" vendor="NV"/>
+ <enum value="0x8F1D" name="GL_BUFFER_GPU_ADDRESS_NV"/>
+ <enum value="0x8F1E" name="GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV"/>
+ <enum value="0x8F1F" name="GL_ELEMENT_ARRAY_UNIFIED_NV"/>
+ <enum value="0x8F20" name="GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F21" name="GL_VERTEX_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F22" name="GL_NORMAL_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F23" name="GL_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F24" name="GL_INDEX_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F25" name="GL_TEXTURE_COORD_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F26" name="GL_EDGE_FLAG_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F27" name="GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F28" name="GL_FOG_COORD_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F29" name="GL_ELEMENT_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F2A" name="GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2B" name="GL_VERTEX_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2C" name="GL_NORMAL_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2D" name="GL_COLOR_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2E" name="GL_INDEX_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2F" name="GL_TEXTURE_COORD_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F30" name="GL_EDGE_FLAG_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F31" name="GL_SECONDARY_COLOR_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F32" name="GL_FOG_COORD_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F33" name="GL_ELEMENT_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F34" name="GL_GPU_ADDRESS_NV"/>
+ <enum value="0x8F35" name="GL_MAX_SHADER_BUFFER_ADDRESS_NV"/>
+ <enum value="0x8F36" name="GL_COPY_READ_BUFFER"/>
+ <enum value="0x8F36" name="GL_COPY_READ_BUFFER_NV"/>
+ <enum value="0x8F36" name="GL_COPY_READ_BUFFER_BINDING" alias="GL_COPY_READ_BUFFER"/>
+ <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER"/>
+ <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER_NV"/>
+ <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER_BINDING" alias="GL_COPY_WRITE_BUFFER"/>
+ <enum value="0x8F38" name="GL_MAX_IMAGE_UNITS"/>
+ <enum value="0x8F38" name="GL_MAX_IMAGE_UNITS_EXT"/>
+ <enum value="0x8F39" name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum value="0x8F39" name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT"/>
+ <enum value="0x8F39" name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES" alias="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum value="0x8F3A" name="GL_IMAGE_BINDING_NAME"/>
+ <enum value="0x8F3A" name="GL_IMAGE_BINDING_NAME_EXT"/>
+ <enum value="0x8F3B" name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum value="0x8F3B" name="GL_IMAGE_BINDING_LEVEL_EXT"/>
+ <enum value="0x8F3C" name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum value="0x8F3C" name="GL_IMAGE_BINDING_LAYERED_EXT"/>
+ <enum value="0x8F3D" name="GL_IMAGE_BINDING_LAYER"/>
+ <enum value="0x8F3D" name="GL_IMAGE_BINDING_LAYER_EXT"/>
+ <enum value="0x8F3E" name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum value="0x8F3E" name="GL_IMAGE_BINDING_ACCESS_EXT"/>
+ <enum value="0x8F3F" name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum value="0x8F40" name="GL_DRAW_INDIRECT_UNIFIED_NV"/>
+ <enum value="0x8F41" name="GL_DRAW_INDIRECT_ADDRESS_NV"/>
+ <enum value="0x8F42" name="GL_DRAW_INDIRECT_LENGTH_NV"/>
+ <enum value="0x8F43" name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ <enum value="0x8F44" name="GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV"/>
+ <enum value="0x8F45" name="GL_MAX_PROGRAM_SUBROUTINE_NUM_NV"/>
+ <enum value="0x8F46" name="GL_DOUBLE_MAT2"/>
+ <enum value="0x8F46" name="GL_DOUBLE_MAT2_EXT"/>
+ <enum value="0x8F47" name="GL_DOUBLE_MAT3"/>
+ <enum value="0x8F47" name="GL_DOUBLE_MAT3_EXT"/>
+ <enum value="0x8F48" name="GL_DOUBLE_MAT4"/>
+ <enum value="0x8F48" name="GL_DOUBLE_MAT4_EXT"/>
+ <enum value="0x8F49" name="GL_DOUBLE_MAT2x3"/>
+ <enum value="0x8F49" name="GL_DOUBLE_MAT2x3_EXT"/>
+ <enum value="0x8F4A" name="GL_DOUBLE_MAT2x4"/>
+ <enum value="0x8F4A" name="GL_DOUBLE_MAT2x4_EXT"/>
+ <enum value="0x8F4B" name="GL_DOUBLE_MAT3x2"/>
+ <enum value="0x8F4B" name="GL_DOUBLE_MAT3x2_EXT"/>
+ <enum value="0x8F4C" name="GL_DOUBLE_MAT3x4"/>
+ <enum value="0x8F4C" name="GL_DOUBLE_MAT3x4_EXT"/>
+ <enum value="0x8F4D" name="GL_DOUBLE_MAT4x2"/>
+ <enum value="0x8F4D" name="GL_DOUBLE_MAT4x2_EXT"/>
+ <enum value="0x8F4E" name="GL_DOUBLE_MAT4x3"/>
+ <enum value="0x8F4E" name="GL_DOUBLE_MAT4x3_EXT"/>
+ <enum value="0x8F4F" name="GL_VERTEX_BINDING_BUFFER"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8F50" end="0x8F5F" vendor="ZiiLabs" comment="For Jon Kennedy, Khronos public bug 75">
+ <unused start="0x8F50" end="0x8F5F" vendor="ZiiLabs"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8F60" end="0x8F6F" vendor="ARM" comment="For Remi Pedersen, Khronos bug 3745">
+ <enum value="0x8F60" name="GL_MALI_SHADER_BINARY_ARM"/>
+ <enum value="0x8F61" name="GL_MALI_PROGRAM_BINARY_ARM"/>
+ <unused start="0x8F62" vendor="ARM"/>
+ <enum value="0x8F63" name="GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT"/>
+ <enum value="0x8F64" name="GL_SHADER_PIXEL_LOCAL_STORAGE_EXT"/>
+ <enum value="0x8F65" name="GL_FETCH_PER_SAMPLE_ARM"/>
+ <enum value="0x8F66" name="GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM"/>
+ <enum value="0x8F67" name="GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT"/>
+ <unused start="0x8F68" end="0x8F6F" vendor="ARM"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with EGL.">
+ <unused start="0x8F70" end="0x8F7F" vendor="HI"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8F80" end="0x8F8F" vendor="Zebra" comment="For Mike Weiblen, public bug 910">
+ <unused start="0x8F80" end="0x8F8F" vendor="Zebra"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8F90" end="0x8F9F" vendor="ARB">
+ <enum value="0x8F90" name="GL_RED_SNORM"/>
+ <enum value="0x8F91" name="GL_RG_SNORM"/>
+ <enum value="0x8F92" name="GL_RGB_SNORM"/>
+ <enum value="0x8F93" name="GL_RGBA_SNORM"/>
+ <enum value="0x8F94" name="GL_R8_SNORM"/>
+ <enum value="0x8F95" name="GL_RG8_SNORM"/>
+ <enum value="0x8F96" name="GL_RGB8_SNORM"/>
+ <enum value="0x8F97" name="GL_RGBA8_SNORM"/>
+ <enum value="0x8F98" name="GL_R16_SNORM"/>
+ <enum value="0x8F99" name="GL_RG16_SNORM"/>
+ <enum value="0x8F9A" name="GL_RGB16_SNORM"/>
+ <enum value="0x8F9B" name="GL_RGBA16_SNORM"/>
+ <enum value="0x8F9C" name="GL_SIGNED_NORMALIZED"/>
+ <enum value="0x8F9D" name="GL_PRIMITIVE_RESTART"/>
+ <enum value="0x8F9E" name="GL_PRIMITIVE_RESTART_INDEX"/>
+ <enum value="0x8F9F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8FA0" end="0x8FBF" vendor="QCOM" comment="For Maurice Ribble, bug 4512">
+ <enum value="0x8FA0" name="GL_PERFMON_GLOBAL_MODE_QCOM"/>
+ <unused start="0x8FA1" end="0x8FAF" vendor="QCOM"/>
+ <enum value="0x8FB0" name="GL_BINNING_CONTROL_HINT_QCOM"/>
+ <enum value="0x8FB1" name="GL_CPU_OPTIMIZED_QCOM"/>
+ <enum value="0x8FB2" name="GL_GPU_OPTIMIZED_QCOM"/>
+ <enum value="0x8FB3" name="GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM"/>
+ <unused start="0x8FB4" end="0x8FBA" vendor="QCOM"/>
+ <enum value="0x8FBB" name="GL_GPU_DISJOINT_EXT"/>
+ <unused start="0x8FBC" end="0x8FBF" vendor="QCOM"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8FC0" end="0x8FDF" vendor="VIV" comment="For Frido Garritsen, bug 4526">
+ <enum value="0x8FC4" name="GL_SHADER_BINARY_VIV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8FE0" end="0x8FFF" vendor="NV" comment="For Pat Brown, bug 4935">
+ <enum value="0x8FE0" name="GL_INT8_NV"/>
+ <enum value="0x8FE1" name="GL_INT8_VEC2_NV"/>
+ <enum value="0x8FE2" name="GL_INT8_VEC3_NV"/>
+ <enum value="0x8FE3" name="GL_INT8_VEC4_NV"/>
+ <enum value="0x8FE4" name="GL_INT16_NV"/>
+ <enum value="0x8FE5" name="GL_INT16_VEC2_NV"/>
+ <enum value="0x8FE6" name="GL_INT16_VEC3_NV"/>
+ <enum value="0x8FE7" name="GL_INT16_VEC4_NV"/>
+ <enum value="0x8FE9" name="GL_INT64_VEC2_NV"/>
+ <enum value="0x8FEA" name="GL_INT64_VEC3_NV"/>
+ <enum value="0x8FEB" name="GL_INT64_VEC4_NV"/>
+ <enum value="0x8FEC" name="GL_UNSIGNED_INT8_NV"/>
+ <enum value="0x8FED" name="GL_UNSIGNED_INT8_VEC2_NV"/>
+ <enum value="0x8FEE" name="GL_UNSIGNED_INT8_VEC3_NV"/>
+ <enum value="0x8FEF" name="GL_UNSIGNED_INT8_VEC4_NV"/>
+ <enum value="0x8FF0" name="GL_UNSIGNED_INT16_NV"/>
+ <enum value="0x8FF1" name="GL_UNSIGNED_INT16_VEC2_NV"/>
+ <enum value="0x8FF2" name="GL_UNSIGNED_INT16_VEC3_NV"/>
+ <enum value="0x8FF3" name="GL_UNSIGNED_INT16_VEC4_NV"/>
+ <enum value="0x8FF5" name="GL_UNSIGNED_INT64_VEC2_NV"/>
+ <enum value="0x8FF6" name="GL_UNSIGNED_INT64_VEC3_NV"/>
+ <enum value="0x8FF7" name="GL_UNSIGNED_INT64_VEC4_NV"/>
+ <enum value="0x8FF8" name="GL_FLOAT16_NV"/>
+ <enum value="0x8FF9" name="GL_FLOAT16_VEC2_NV"/>
+ <enum value="0x8FFA" name="GL_FLOAT16_VEC3_NV"/>
+ <enum value="0x8FFB" name="GL_FLOAT16_VEC4_NV"/>
+ <enum value="0x8FFC" name="GL_DOUBLE_VEC2"/>
+ <enum value="0x8FFC" name="GL_DOUBLE_VEC2_EXT"/>
+ <enum value="0x8FFD" name="GL_DOUBLE_VEC3"/>
+ <enum value="0x8FFD" name="GL_DOUBLE_VEC3_EXT"/>
+ <enum value="0x8FFE" name="GL_DOUBLE_VEC4"/>
+ <enum value="0x8FFE" name="GL_DOUBLE_VEC4_EXT"/>
+ <unused start="0x8FFF" vendor="NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9000" end="0x901F" vendor="AMD" comment="For Bill Licea-Kane">
+ <enum value="0x9001" name="GL_SAMPLER_BUFFER_AMD"/>
+ <enum value="0x9002" name="GL_INT_SAMPLER_BUFFER_AMD"/>
+ <enum value="0x9003" name="GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD"/>
+ <enum value="0x9004" name="GL_TESSELLATION_MODE_AMD"/>
+ <enum value="0x9005" name="GL_TESSELLATION_FACTOR_AMD"/>
+ <enum value="0x9006" name="GL_DISCRETE_AMD"/>
+ <enum value="0x9007" name="GL_CONTINUOUS_AMD"/>
+ <unused start="0x9008" vendor="AMD"/>
+ <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"/>
+ <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW"/>
+ <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB"/>
+ <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT"/>
+ <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x9010" name="GL_ALPHA_SNORM"/>
+ <enum value="0x9011" name="GL_LUMINANCE_SNORM"/>
+ <enum value="0x9012" name="GL_LUMINANCE_ALPHA_SNORM"/>
+ <enum value="0x9013" name="GL_INTENSITY_SNORM"/>
+ <enum value="0x9014" name="GL_ALPHA8_SNORM"/>
+ <enum value="0x9015" name="GL_LUMINANCE8_SNORM"/>
+ <enum value="0x9016" name="GL_LUMINANCE8_ALPHA8_SNORM"/>
+ <enum value="0x9017" name="GL_INTENSITY8_SNORM"/>
+ <enum value="0x9018" name="GL_ALPHA16_SNORM"/>
+ <enum value="0x9019" name="GL_LUMINANCE16_SNORM"/>
+ <enum value="0x901A" name="GL_LUMINANCE16_ALPHA16_SNORM"/>
+ <enum value="0x901B" name="GL_INTENSITY16_SNORM"/>
+ <enum value="0x901C" name="GL_FACTOR_MIN_AMD"/>
+ <enum value="0x901D" name="GL_FACTOR_MAX_AMD"/>
+ <enum value="0x901E" name="GL_DEPTH_CLAMP_NEAR_AMD"/>
+ <enum value="0x901F" name="GL_DEPTH_CLAMP_FAR_AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9020" end="0x90FF" vendor="NV" comment="For Pat Brown, bug 4935">
+ <enum value="0x9020" name="GL_VIDEO_BUFFER_NV"/>
+ <enum value="0x9021" name="GL_VIDEO_BUFFER_BINDING_NV"/>
+ <enum value="0x9022" name="GL_FIELD_UPPER_NV"/>
+ <enum value="0x9023" name="GL_FIELD_LOWER_NV"/>
+ <enum value="0x9024" name="GL_NUM_VIDEO_CAPTURE_STREAMS_NV"/>
+ <enum value="0x9025" name="GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV"/>
+ <enum value="0x9026" name="GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV"/>
+ <enum value="0x9027" name="GL_LAST_VIDEO_CAPTURE_STATUS_NV"/>
+ <enum value="0x9028" name="GL_VIDEO_BUFFER_PITCH_NV"/>
+ <enum value="0x9029" name="GL_VIDEO_COLOR_CONVERSION_MATRIX_NV"/>
+ <enum value="0x902A" name="GL_VIDEO_COLOR_CONVERSION_MAX_NV"/>
+ <enum value="0x902B" name="GL_VIDEO_COLOR_CONVERSION_MIN_NV"/>
+ <enum value="0x902C" name="GL_VIDEO_COLOR_CONVERSION_OFFSET_NV"/>
+ <enum value="0x902D" name="GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV"/>
+ <enum value="0x902E" name="GL_PARTIAL_SUCCESS_NV"/>
+ <enum value="0x902F" name="GL_SUCCESS_NV"/>
+ <enum value="0x9030" name="GL_FAILURE_NV"/>
+ <enum value="0x9031" name="GL_YCBYCR8_422_NV"/>
+ <enum value="0x9032" name="GL_YCBAYCR8A_4224_NV"/>
+ <enum value="0x9033" name="GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV"/>
+ <enum value="0x9034" name="GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV"/>
+ <enum value="0x9035" name="GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV"/>
+ <enum value="0x9036" name="GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV"/>
+ <enum value="0x9037" name="GL_Z4Y12Z4CB12Z4CR12_444_NV"/>
+ <enum value="0x9038" name="GL_VIDEO_CAPTURE_FRAME_WIDTH_NV"/>
+ <enum value="0x9039" name="GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV"/>
+ <enum value="0x903A" name="GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV"/>
+ <enum value="0x903B" name="GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV"/>
+ <enum value="0x903C" name="GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV"/>
+ <unused start="0x903D" end="0x9044" vendor="NV"/>
+ <enum value="0x9045" name="GL_TEXTURE_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x9046" name="GL_TEXTURE_COLOR_SAMPLES_NV"/>
+ <enum value="0x9047" name="GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX"/>
+ <enum value="0x9048" name="GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX"/>
+ <enum value="0x9049" name="GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX"/>
+ <enum value="0x904A" name="GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX"/>
+ <enum value="0x904B" name="GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX"/>
+ <enum value="0x904C" name="GL_IMAGE_1D"/>
+ <enum value="0x904C" name="GL_IMAGE_1D_EXT"/>
+ <enum value="0x904D" name="GL_IMAGE_2D"/>
+ <enum value="0x904D" name="GL_IMAGE_2D_EXT"/>
+ <enum value="0x904E" name="GL_IMAGE_3D"/>
+ <enum value="0x904E" name="GL_IMAGE_3D_EXT"/>
+ <enum value="0x904F" name="GL_IMAGE_2D_RECT"/>
+ <enum value="0x904F" name="GL_IMAGE_2D_RECT_EXT"/>
+ <enum value="0x9050" name="GL_IMAGE_CUBE"/>
+ <enum value="0x9050" name="GL_IMAGE_CUBE_EXT"/>
+ <enum value="0x9051" name="GL_IMAGE_BUFFER"/>
+ <enum value="0x9051" name="GL_IMAGE_BUFFER_EXT"/>
+ <enum value="0x9052" name="GL_IMAGE_1D_ARRAY"/>
+ <enum value="0x9052" name="GL_IMAGE_1D_ARRAY_EXT"/>
+ <enum value="0x9053" name="GL_IMAGE_2D_ARRAY"/>
+ <enum value="0x9053" name="GL_IMAGE_2D_ARRAY_EXT"/>
+ <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x9055" name="GL_IMAGE_2D_MULTISAMPLE"/>
+ <enum value="0x9055" name="GL_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum value="0x9056" name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9056" name="GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum value="0x9057" name="GL_INT_IMAGE_1D"/>
+ <enum value="0x9057" name="GL_INT_IMAGE_1D_EXT"/>
+ <enum value="0x9058" name="GL_INT_IMAGE_2D"/>
+ <enum value="0x9058" name="GL_INT_IMAGE_2D_EXT"/>
+ <enum value="0x9059" name="GL_INT_IMAGE_3D"/>
+ <enum value="0x9059" name="GL_INT_IMAGE_3D_EXT"/>
+ <enum value="0x905A" name="GL_INT_IMAGE_2D_RECT"/>
+ <enum value="0x905A" name="GL_INT_IMAGE_2D_RECT_EXT"/>
+ <enum value="0x905B" name="GL_INT_IMAGE_CUBE"/>
+ <enum value="0x905B" name="GL_INT_IMAGE_CUBE_EXT"/>
+ <enum value="0x905C" name="GL_INT_IMAGE_BUFFER"/>
+ <enum value="0x905C" name="GL_INT_IMAGE_BUFFER_EXT"/>
+ <enum value="0x905D" name="GL_INT_IMAGE_1D_ARRAY"/>
+ <enum value="0x905D" name="GL_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum value="0x905E" name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum value="0x905E" name="GL_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x9060" name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum value="0x9060" name="GL_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum value="0x9061" name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9061" name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum value="0x9062" name="GL_UNSIGNED_INT_IMAGE_1D"/>
+ <enum value="0x9062" name="GL_UNSIGNED_INT_IMAGE_1D_EXT"/>
+ <enum value="0x9063" name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum value="0x9063" name="GL_UNSIGNED_INT_IMAGE_2D_EXT"/>
+ <enum value="0x9064" name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum value="0x9064" name="GL_UNSIGNED_INT_IMAGE_3D_EXT"/>
+ <enum value="0x9065" name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+ <enum value="0x9065" name="GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT"/>
+ <enum value="0x9066" name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum value="0x9066" name="GL_UNSIGNED_INT_IMAGE_CUBE_EXT"/>
+ <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+ <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER_EXT"/>
+ <enum value="0x9068" name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+ <enum value="0x9068" name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum value="0x9069" name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum value="0x9069" name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x906B" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum value="0x906B" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum value="0x906C" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x906C" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum value="0x906D" name="GL_MAX_IMAGE_SAMPLES"/>
+ <enum value="0x906D" name="GL_MAX_IMAGE_SAMPLES_EXT"/>
+ <enum value="0x906E" name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum value="0x906E" name="GL_IMAGE_BINDING_FORMAT_EXT"/>
+ <enum value="0x906F" name="GL_RGB10_A2UI"/>
+ <enum value="0x9070" name="GL_PATH_FORMAT_SVG_NV"/>
+ <enum value="0x9071" name="GL_PATH_FORMAT_PS_NV"/>
+ <enum value="0x9072" name="GL_STANDARD_FONT_NAME_NV"/>
+ <enum value="0x9073" name="GL_SYSTEM_FONT_NAME_NV"/>
+ <enum value="0x9074" name="GL_FILE_NAME_NV"/>
+ <enum value="0x9075" name="GL_PATH_STROKE_WIDTH_NV"/>
+ <enum value="0x9076" name="GL_PATH_END_CAPS_NV"/>
+ <enum value="0x9077" name="GL_PATH_INITIAL_END_CAP_NV"/>
+ <enum value="0x9078" name="GL_PATH_TERMINAL_END_CAP_NV"/>
+ <enum value="0x9079" name="GL_PATH_JOIN_STYLE_NV"/>
+ <enum value="0x907A" name="GL_PATH_MITER_LIMIT_NV"/>
+ <enum value="0x907B" name="GL_PATH_DASH_CAPS_NV"/>
+ <enum value="0x907C" name="GL_PATH_INITIAL_DASH_CAP_NV"/>
+ <enum value="0x907D" name="GL_PATH_TERMINAL_DASH_CAP_NV"/>
+ <enum value="0x907E" name="GL_PATH_DASH_OFFSET_NV"/>
+ <enum value="0x907F" name="GL_PATH_CLIENT_LENGTH_NV"/>
+ <enum value="0x9080" name="GL_PATH_FILL_MODE_NV"/>
+ <enum value="0x9081" name="GL_PATH_FILL_MASK_NV"/>
+ <enum value="0x9082" name="GL_PATH_FILL_COVER_MODE_NV"/>
+ <enum value="0x9083" name="GL_PATH_STROKE_COVER_MODE_NV"/>
+ <enum value="0x9084" name="GL_PATH_STROKE_MASK_NV"/>
+ <!-- <enum value="0x9085" name="GL_PATH_SAMPLE_QUALITY_NV" comment="Removed from extension"/> -->
+ <!-- <enum value="0x9086" name="GL_PATH_STROKE_BOUND_NV" comment="Removed from extension"/> -->
+ <!-- <enum value="0x9087" name="GL_PATH_STROKE_OVERSAMPLE_COUNT_NV" comment="Removed from extension"/> -->
+ <enum value="0x9088" name="GL_COUNT_UP_NV"/>
+ <enum value="0x9089" name="GL_COUNT_DOWN_NV"/>
+ <enum value="0x908A" name="GL_PATH_OBJECT_BOUNDING_BOX_NV"/>
+ <enum value="0x908B" name="GL_CONVEX_HULL_NV"/>
+ <!-- <enum value="0x908C" name="GL_MULTI_HULLS_NV" comment="Removed from extension"/> -->
+ <enum value="0x908D" name="GL_BOUNDING_BOX_NV"/>
+ <enum value="0x908E" name="GL_TRANSLATE_X_NV"/>
+ <enum value="0x908F" name="GL_TRANSLATE_Y_NV"/>
+ <enum value="0x9090" name="GL_TRANSLATE_2D_NV"/>
+ <enum value="0x9091" name="GL_TRANSLATE_3D_NV"/>
+ <enum value="0x9092" name="GL_AFFINE_2D_NV"/>
+ <!-- <enum value="0x9093" name="GL_PROJECTIVE_2D_NV" comment="Removed from extension"/> -->
+ <enum value="0x9094" name="GL_AFFINE_3D_NV"/>
+ <!-- <enum value="0x9095" name="GL_PROJECTIVE_3D_NV" comment="Removed from extension"/> -->
+ <enum value="0x9096" name="GL_TRANSPOSE_AFFINE_2D_NV"/>
+ <!-- <enum value="0x9097" name="GL_TRANSPOSE_PROJECTIVE_2D_NV" comment="Removed from extension"/> -->
+ <enum value="0x9098" name="GL_TRANSPOSE_AFFINE_3D_NV"/>
+ <!-- <enum value="0x9099" name="GL_TRANSPOSE_PROJECTIVE_3D_NV" comment="Removed from extension"/> -->
+ <enum value="0x909A" name="GL_UTF8_NV"/>
+ <enum value="0x909B" name="GL_UTF16_NV"/>
+ <enum value="0x909C" name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV"/>
+ <enum value="0x909D" name="GL_PATH_COMMAND_COUNT_NV"/>
+ <enum value="0x909E" name="GL_PATH_COORD_COUNT_NV"/>
+ <enum value="0x909F" name="GL_PATH_DASH_ARRAY_COUNT_NV"/>
+ <enum value="0x90A0" name="GL_PATH_COMPUTED_LENGTH_NV"/>
+ <enum value="0x90A1" name="GL_PATH_FILL_BOUNDING_BOX_NV"/>
+ <enum value="0x90A2" name="GL_PATH_STROKE_BOUNDING_BOX_NV"/>
+ <enum value="0x90A3" name="GL_SQUARE_NV"/>
+ <enum value="0x90A4" name="GL_ROUND_NV"/>
+ <enum value="0x90A5" name="GL_TRIANGULAR_NV"/>
+ <enum value="0x90A6" name="GL_BEVEL_NV"/>
+ <enum value="0x90A7" name="GL_MITER_REVERT_NV"/>
+ <enum value="0x90A8" name="GL_MITER_TRUNCATE_NV"/>
+ <enum value="0x90A9" name="GL_SKIP_MISSING_GLYPH_NV"/>
+ <enum value="0x90AA" name="GL_USE_MISSING_GLYPH_NV"/>
+ <enum value="0x90AB" name="GL_PATH_ERROR_POSITION_NV"/>
+ <enum value="0x90AC" name="GL_PATH_FOG_GEN_MODE_NV"/>
+ <enum value="0x90AD" name="GL_ACCUM_ADJACENT_PAIRS_NV"/>
+ <enum value="0x90AE" name="GL_ADJACENT_PAIRS_NV"/>
+ <enum value="0x90AF" name="GL_FIRST_TO_REST_NV"/>
+ <enum value="0x90B0" name="GL_PATH_GEN_MODE_NV"/>
+ <enum value="0x90B1" name="GL_PATH_GEN_COEFF_NV"/>
+ <enum value="0x90B2" name="GL_PATH_GEN_COLOR_FORMAT_NV"/>
+ <enum value="0x90B3" name="GL_PATH_GEN_COMPONENTS_NV"/>
+ <enum value="0x90B4" name="GL_PATH_DASH_OFFSET_RESET_NV"/>
+ <enum value="0x90B5" name="GL_MOVE_TO_RESETS_NV"/>
+ <enum value="0x90B6" name="GL_MOVE_TO_CONTINUES_NV"/>
+ <enum value="0x90B7" name="GL_PATH_STENCIL_FUNC_NV"/>
+ <enum value="0x90B8" name="GL_PATH_STENCIL_REF_NV"/>
+ <enum value="0x90B9" name="GL_PATH_STENCIL_VALUE_MASK_NV"/>
+ <enum value="0x90BA" name="GL_SCALED_RESOLVE_FASTEST_EXT"/>
+ <enum value="0x90BB" name="GL_SCALED_RESOLVE_NICEST_EXT"/>
+ <enum value="0x90BC" name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+ <enum value="0x90BD" name="GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV"/>
+ <enum value="0x90BE" name="GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV"/>
+ <enum value="0x90BF" name="GL_PATH_COVER_DEPTH_FUNC_NV"/>
+ <unused start="0x90C0" end="0x90C6" vendor="NV"/>
+ <enum value="0x90C7" name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum value="0x90C8" name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum value="0x90C9" name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum value="0x90CA" name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum value="0x90CB" name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS"/>
+ <enum value="0x90CB" name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT"/>
+ <enum value="0x90CC" name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS"/>
+ <enum value="0x90CC" name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT"/>
+ <enum value="0x90CD" name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS"/>
+ <enum value="0x90CD" name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT"/>
+ <enum value="0x90CE" name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum value="0x90CF" name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ <enum value="0x90D0" name="GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV"/>
+ <enum value="0x90D1" name="GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV"/>
+ <enum value="0x90D2" name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum value="0x90D3" name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum value="0x90D4" name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum value="0x90D5" name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum value="0x90D6" name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D7" name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D7" name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT"/>
+ <enum value="0x90D8" name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D8" name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT"/>
+ <enum value="0x90D9" name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D9" name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT"/>
+ <enum value="0x90DA" name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DB" name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DC" name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DD" name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum value="0x90DE" name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum value="0x90DF" name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <unused start="0x90E0" vendor="NV"/>
+ <enum value="0x90E1" name="GL_SYNC_X11_FENCE_EXT"/>
+ <unused start="0x90E2" end="0x90E9" vendor="NV"/>
+ <enum value="0x90EA" name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ <enum value="0x90EB" name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+ <enum value="0x90EB" name="GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB" alias="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+ <enum value="0x90EC" name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum value="0x90ED" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum value="0x90EE" name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum value="0x90EF" name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ <enum value="0x90F0" name="GL_COLOR_ATTACHMENT_EXT"/>
+ <enum value="0x90F1" name="GL_MULTIVIEW_EXT"/>
+ <enum value="0x90F2" name="GL_MAX_MULTIVIEW_BUFFERS_EXT"/>
+ <enum value="0x90F3" name="GL_CONTEXT_ROBUST_ACCESS"/>
+ <enum value="0x90F3" name="GL_CONTEXT_ROBUST_ACCESS_EXT"/>
+ <enum value="0x90F3" name="GL_CONTEXT_ROBUST_ACCESS_KHR"/>
+ <unused start="0x90F4" end="0x90FA" vendor="NV"/>
+ <enum value="0x90FB" name="GL_COMPUTE_PROGRAM_NV"/>
+ <enum value="0x90FC" name="GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <unused start="0x90FD" end="0x90FF" vendor="NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9100" end="0x912F" vendor="ARB">
+ <enum value="0x9100" name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum value="0x9101" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+ <enum value="0x9102" name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9102" name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES"/>
+ <enum value="0x9103" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9104" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum value="0x9105" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9105" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES"/>
+ <enum value="0x9106" name="GL_TEXTURE_SAMPLES"/>
+ <enum value="0x9107" name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum value="0x9108" name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum value="0x9109" name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum value="0x910A" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum value="0x910B" name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x910B" name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES"/>
+ <enum value="0x910C" name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x910C" name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES"/>
+ <enum value="0x910D" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x910D" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES"/>
+ <enum value="0x910E" name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum value="0x910F" name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum value="0x9110" name="GL_MAX_INTEGER_SAMPLES"/>
+ <enum value="0x9111" name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum value="0x9111" name="GL_MAX_SERVER_WAIT_TIMEOUT_APPLE"/>
+ <enum value="0x9112" name="GL_OBJECT_TYPE"/>
+ <enum value="0x9112" name="GL_OBJECT_TYPE_APPLE"/>
+ <enum value="0x9113" name="GL_SYNC_CONDITION"/>
+ <enum value="0x9113" name="GL_SYNC_CONDITION_APPLE"/>
+ <enum value="0x9114" name="GL_SYNC_STATUS"/>
+ <enum value="0x9114" name="GL_SYNC_STATUS_APPLE"/>
+ <enum value="0x9115" name="GL_SYNC_FLAGS"/>
+ <enum value="0x9115" name="GL_SYNC_FLAGS_APPLE"/>
+ <enum value="0x9116" name="GL_SYNC_FENCE"/>
+ <enum value="0x9116" name="GL_SYNC_FENCE_APPLE"/>
+ <enum value="0x9117" name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum value="0x9117" name="GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE"/>
+ <enum value="0x9118" name="GL_UNSIGNALED"/>
+ <enum value="0x9118" name="GL_UNSIGNALED_APPLE"/>
+ <enum value="0x9119" name="GL_SIGNALED"/>
+ <enum value="0x9119" name="GL_SIGNALED_APPLE"/>
+ <enum value="0x911A" name="GL_ALREADY_SIGNALED"/>
+ <enum value="0x911A" name="GL_ALREADY_SIGNALED_APPLE"/>
+ <enum value="0x911B" name="GL_TIMEOUT_EXPIRED"/>
+ <enum value="0x911B" name="GL_TIMEOUT_EXPIRED_APPLE"/>
+ <enum value="0x911C" name="GL_CONDITION_SATISFIED"/>
+ <enum value="0x911C" name="GL_CONDITION_SATISFIED_APPLE"/>
+ <enum value="0x911D" name="GL_WAIT_FAILED"/>
+ <enum value="0x911D" name="GL_WAIT_FAILED_APPLE"/>
+ <enum value="0x911F" name="GL_BUFFER_ACCESS_FLAGS"/>
+ <enum value="0x9120" name="GL_BUFFER_MAP_LENGTH"/>
+ <enum value="0x9121" name="GL_BUFFER_MAP_OFFSET"/>
+ <enum value="0x9122" name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
+ <enum value="0x9123" name="GL_MAX_GEOMETRY_INPUT_COMPONENTS"/>
+ <enum value="0x9123" name="GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT"/>
+ <enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS"/>
+ <enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT"/>
+ <enum value="0x9125" name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+ <enum value="0x9126" name="GL_CONTEXT_PROFILE_MASK"/>
+ <enum value="0x9127" name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum value="0x9128" name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum value="0x9129" name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum value="0x912A" name="GL_UNPACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum value="0x912B" name="GL_PACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum value="0x912C" name="GL_PACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum value="0x912D" name="GL_PACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum value="0x912E" name="GL_PACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum value="0x912F" name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ <enum value="0x912F" name="GL_TEXTURE_IMMUTABLE_FORMAT_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9130" end="0x913F" vendor="IMG" comment="Khronos bug 882">
+ <enum value="0x9130" name="GL_SGX_PROGRAM_BINARY_IMG"/>
+ <unused start="0x9131" end="0x9132" vendor="IMG"/>
+ <enum value="0x9133" name="GL_RENDERBUFFER_SAMPLES_IMG"/>
+ <enum value="0x9134" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG"/>
+ <enum value="0x9135" name="GL_MAX_SAMPLES_IMG"/>
+ <enum value="0x9136" name="GL_TEXTURE_SAMPLES_IMG"/>
+ <enum value="0x9137" name="GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG"/>
+ <enum value="0x9138" name="GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG"/>
+ <unused start="0x9139" end="0x913F" vendor="IMG"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9140" end="0x923F" vendor="AMD" comment="Khronos bugs 5899, 6004">
+ <unused start="0x9140" end="0x9142" vendor="AMD"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH_AMD"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH_ARB"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH_KHR"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_AMD"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_ARB"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_KHR"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_AMD"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_ARB"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_KHR"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_AMD"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_ARB"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_KHR"/>
+ <enum value="0x9149" name="GL_DEBUG_CATEGORY_API_ERROR_AMD"/>
+ <enum value="0x914A" name="GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD"/>
+ <enum value="0x914B" name="GL_DEBUG_CATEGORY_DEPRECATION_AMD"/>
+ <enum value="0x914C" name="GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD"/>
+ <enum value="0x914D" name="GL_DEBUG_CATEGORY_PERFORMANCE_AMD"/>
+ <enum value="0x914E" name="GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD"/>
+ <enum value="0x914F" name="GL_DEBUG_CATEGORY_APPLICATION_AMD"/>
+ <enum value="0x9150" name="GL_DEBUG_CATEGORY_OTHER_AMD"/>
+ <enum value="0x9151" name="GL_BUFFER_OBJECT_EXT"/>
+ <enum value="0x9151" name="GL_DATA_BUFFER_AMD"/>
+ <enum value="0x9152" name="GL_PERFORMANCE_MONITOR_AMD"/>
+ <enum value="0x9153" name="GL_QUERY_OBJECT_AMD"/>
+ <enum value="0x9153" name="GL_QUERY_OBJECT_EXT"/>
+ <enum value="0x9154" name="GL_VERTEX_ARRAY_OBJECT_AMD"/>
+ <enum value="0x9154" name="GL_VERTEX_ARRAY_OBJECT_EXT"/>
+ <enum value="0x9155" name="GL_SAMPLER_OBJECT_AMD"/>
+ <unused start="0x9156" end="0x915F" vendor="AMD"/>
+ <enum value="0x9160" name="GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD"/>
+ <unused start="0x9161" vendor="AMD"/>
+ <enum value="0x9192" name="GL_QUERY_BUFFER"/>
+ <enum value="0x9192" name="GL_QUERY_BUFFER_AMD"/>
+ <enum value="0x9193" name="GL_QUERY_BUFFER_BINDING"/>
+ <enum value="0x9193" name="GL_QUERY_BUFFER_BINDING_AMD"/>
+ <enum value="0x9194" name="GL_QUERY_RESULT_NO_WAIT"/>
+ <enum value="0x9194" name="GL_QUERY_RESULT_NO_WAIT_AMD"/>
+ <enum value="0x9195" name="GL_VIRTUAL_PAGE_SIZE_X_ARB"/>
+ <enum value="0x9195" name="GL_VIRTUAL_PAGE_SIZE_X_AMD"/>
+ <enum value="0x9196" name="GL_VIRTUAL_PAGE_SIZE_Y_ARB"/>
+ <enum value="0x9196" name="GL_VIRTUAL_PAGE_SIZE_Y_AMD"/>
+ <enum value="0x9197" name="GL_VIRTUAL_PAGE_SIZE_Z_ARB"/>
+ <enum value="0x9197" name="GL_VIRTUAL_PAGE_SIZE_Z_AMD"/>
+ <enum value="0x9198" name="GL_MAX_SPARSE_TEXTURE_SIZE_ARB"/>
+ <enum value="0x9198" name="GL_MAX_SPARSE_TEXTURE_SIZE_AMD"/>
+ <enum value="0x9199" name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB"/>
+ <enum value="0x9199" name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD"/>
+ <enum value="0x919A" name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB"/>
+ <enum value="0x919A" name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS"/>
+ <enum value="0x919B" name="GL_MIN_SPARSE_LEVEL_ARB"/>
+ <enum value="0x919B" name="GL_MIN_SPARSE_LEVEL_AMD"/>
+ <enum value="0x919C" name="GL_MIN_LOD_WARNING_AMD"/>
+ <enum value="0x919D" name="GL_TEXTURE_BUFFER_OFFSET"/>
+ <enum value="0x919D" name="GL_TEXTURE_BUFFER_OFFSET_EXT"/>
+ <enum value="0x919E" name="GL_TEXTURE_BUFFER_SIZE"/>
+ <enum value="0x919E" name="GL_TEXTURE_BUFFER_SIZE_EXT"/>
+ <enum value="0x919F" name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum value="0x919F" name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT"/>
+ <enum value="0x91A0" name="GL_STREAM_RASTERIZATION_AMD"/>
+ <unused start="0x91A1" end="0x91A3" vendor="AMD"/>
+ <enum value="0x91A4" name="GL_VERTEX_ELEMENT_SWIZZLE_AMD"/>
+ <enum value="0x91A5" name="GL_VERTEX_ID_SWIZZLE_AMD"/>
+ <enum value="0x91A6" name="GL_TEXTURE_SPARSE_ARB"/>
+ <enum value="0x91A7" name="GL_VIRTUAL_PAGE_SIZE_INDEX_ARB"/>
+ <enum value="0x91A8" name="GL_NUM_VIRTUAL_PAGE_SIZES_ARB"/>
+ <enum value="0x91A9" name="GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB"/>
+ <unused start="0x91AA" end="0x91B8" vendor="AMD"/>
+ <enum value="0x91B9" name="GL_COMPUTE_SHADER"/>
+ <unused start="0x91BA" vendor="AMD"/>
+ <enum value="0x91BB" name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum value="0x91BC" name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x91BD" name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum value="0x91BE" name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum value="0x91BF" name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum value="0x91BF" name="GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB" alias="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <unused start="0x91C0" end="0x923F" vendor="AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9240" end="0x924F" vendor="WEBGL" comment="Khronos bug 6473,6884">
+ <enum value="0x9240" name="GL_UNPACK_FLIP_Y_WEBGL"/>
+ <enum value="0x9241" name="GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL"/>
+ <enum value="0x9242" name="GL_CONTEXT_LOST_WEBGL"/>
+ <enum value="0x9243" name="GL_UNPACK_COLORSPACE_CONVERSION_WEBGL"/>
+ <enum value="0x9244" name="GL_BROWSER_DEFAULT_WEBGL"/>
+ <unused start="0x9245" end="0x924F" vendor="WEBGL"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9250" end="0x925F" vendor="DMP" comment="For Eisaku Ohbuchi via email">
+ <enum value="0x9250" name="GL_SHADER_BINARY_DMP"/>
+ <unused start="0x9251" end="0x925F" vendor="DMP"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9260" end="0x926F" vendor="FJ" comment="Khronos bug 7486">
+ <enum value="0x9260" name="GL_GCCSO_SHADER_BINARY_FJ"/>
+ <unused start="0x9261" end="0x926F" vendor="FJ"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9270" end="0x927F" vendor="OES" comment="Khronos bug 7625">
+ <enum value="0x9270" name="GL_COMPRESSED_R11_EAC"/>
+ <enum value="0x9270" name="GL_COMPRESSED_R11_EAC_OES"/>
+ <enum value="0x9271" name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum value="0x9271" name="GL_COMPRESSED_SIGNED_R11_EAC_OES"/>
+ <enum value="0x9272" name="GL_COMPRESSED_RG11_EAC"/>
+ <enum value="0x9272" name="GL_COMPRESSED_RG11_EAC_OES"/>
+ <enum value="0x9273" name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum value="0x9273" name="GL_COMPRESSED_SIGNED_RG11_EAC_OES"/>
+ <enum value="0x9274" name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum value="0x9274" name="GL_COMPRESSED_RGB8_ETC2_OES"/>
+ <enum value="0x9275" name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum value="0x9275" name="GL_COMPRESSED_SRGB8_ETC2_OES"/>
+ <enum value="0x9276" name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum value="0x9276" name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES"/>
+ <enum value="0x9277" name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum value="0x9277" name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES"/>
+ <enum value="0x9278" name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum value="0x9278" name="GL_COMPRESSED_RGBA8_ETC2_EAC_OES"/>
+ <enum value="0x9279" name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum value="0x9279" name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES"/>
+ <unused start="0x927A" end="0x927F" vendor="OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9280" end="0x937F" vendor="NV" comment="Khronos bug 7658">
+ <enum value="0x9280" name="GL_BLEND_PREMULTIPLIED_SRC_NV"/>
+ <enum value="0x9281" name="GL_BLEND_OVERLAP_NV"/>
+ <enum value="0x9282" name="GL_UNCORRELATED_NV"/>
+ <enum value="0x9283" name="GL_DISJOINT_NV"/>
+ <enum value="0x9284" name="GL_CONJOINT_NV"/>
+ <enum value="0x9285" name="GL_BLEND_ADVANCED_COHERENT_KHR"/>
+ <enum value="0x9285" name="GL_BLEND_ADVANCED_COHERENT_NV"/>
+ <enum value="0x9286" name="GL_SRC_NV"/>
+ <enum value="0x9287" name="GL_DST_NV"/>
+ <enum value="0x9288" name="GL_SRC_OVER_NV"/>
+ <enum value="0x9289" name="GL_DST_OVER_NV"/>
+ <enum value="0x928A" name="GL_SRC_IN_NV"/>
+ <enum value="0x928B" name="GL_DST_IN_NV"/>
+ <enum value="0x928C" name="GL_SRC_OUT_NV"/>
+ <enum value="0x928D" name="GL_DST_OUT_NV"/>
+ <enum value="0x928E" name="GL_SRC_ATOP_NV"/>
+ <enum value="0x928F" name="GL_DST_ATOP_NV"/>
+ <unused start="0x9290" vendor="NV"/>
+ <enum value="0x9291" name="GL_PLUS_NV"/>
+ <enum value="0x9292" name="GL_PLUS_DARKER_NV"/>
+ <unused start="0x9293" vendor="NV"/>
+ <enum value="0x9294" name="GL_MULTIPLY_KHR"/>
+ <enum value="0x9294" name="GL_MULTIPLY_NV"/>
+ <enum value="0x9295" name="GL_SCREEN_KHR"/>
+ <enum value="0x9295" name="GL_SCREEN_NV"/>
+ <enum value="0x9296" name="GL_OVERLAY_KHR"/>
+ <enum value="0x9296" name="GL_OVERLAY_NV"/>
+ <enum value="0x9297" name="GL_DARKEN_KHR"/>
+ <enum value="0x9297" name="GL_DARKEN_NV"/>
+ <enum value="0x9298" name="GL_LIGHTEN_KHR"/>
+ <enum value="0x9298" name="GL_LIGHTEN_NV"/>
+ <enum value="0x9299" name="GL_COLORDODGE_KHR"/>
+ <enum value="0x9299" name="GL_COLORDODGE_NV"/>
+ <enum value="0x929A" name="GL_COLORBURN_KHR"/>
+ <enum value="0x929A" name="GL_COLORBURN_NV"/>
+ <enum value="0x929B" name="GL_HARDLIGHT_KHR"/>
+ <enum value="0x929B" name="GL_HARDLIGHT_NV"/>
+ <enum value="0x929C" name="GL_SOFTLIGHT_KHR"/>
+ <enum value="0x929C" name="GL_SOFTLIGHT_NV"/>
+ <unused start="0x929D" vendor="NV"/>
+ <enum value="0x929E" name="GL_DIFFERENCE_KHR"/>
+ <enum value="0x929E" name="GL_DIFFERENCE_NV"/>
+ <enum value="0x929F" name="GL_MINUS_NV"/>
+ <enum value="0x92A0" name="GL_EXCLUSION_KHR"/>
+ <enum value="0x92A0" name="GL_EXCLUSION_NV"/>
+ <enum value="0x92A1" name="GL_CONTRAST_NV"/>
+ <unused start="0x92A2" vendor="NV"/>
+ <enum value="0x92A3" name="GL_INVERT_RGB_NV"/>
+ <enum value="0x92A4" name="GL_LINEARDODGE_NV"/>
+ <enum value="0x92A5" name="GL_LINEARBURN_NV"/>
+ <enum value="0x92A6" name="GL_VIVIDLIGHT_NV"/>
+ <enum value="0x92A7" name="GL_LINEARLIGHT_NV"/>
+ <enum value="0x92A8" name="GL_PINLIGHT_NV"/>
+ <enum value="0x92A9" name="GL_HARDMIX_NV"/>
+ <unused start="0x92AA" end="0x92AC" vendor="NV"/>
+ <enum value="0x92AD" name="GL_HSL_HUE_KHR"/>
+ <enum value="0x92AD" name="GL_HSL_HUE_NV"/>
+ <enum value="0x92AE" name="GL_HSL_SATURATION_KHR"/>
+ <enum value="0x92AE" name="GL_HSL_SATURATION_NV"/>
+ <enum value="0x92AF" name="GL_HSL_COLOR_KHR"/>
+ <enum value="0x92AF" name="GL_HSL_COLOR_NV"/>
+ <enum value="0x92B0" name="GL_HSL_LUMINOSITY_KHR"/>
+ <enum value="0x92B0" name="GL_HSL_LUMINOSITY_NV"/>
+ <enum value="0x92B1" name="GL_PLUS_CLAMPED_NV"/>
+ <enum value="0x92B2" name="GL_PLUS_CLAMPED_ALPHA_NV"/>
+ <enum value="0x92B3" name="GL_MINUS_CLAMPED_NV"/>
+ <enum value="0x92B4" name="GL_INVERT_OVG_NV"/>
+ <unused start="0x92B5" end="0x92BD" vendor="NV"/>
+ <enum value="0x92BE" name="GL_PRIMITIVE_BOUNDING_BOX_EXT"/>
+ <unused start="0x92BF" vendor="NV"/>
+ <enum value="0x92C0" name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum value="0x92C1" name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum value="0x92C2" name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum value="0x92C3" name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum value="0x92C4" name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
+ <enum value="0x92C5" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
+ <enum value="0x92C6" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
+ <enum value="0x92C7" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum value="0x92C8" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum value="0x92C9" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum value="0x92CA" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum value="0x92CB" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum value="0x92CC" name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CD" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CD" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT"/>
+ <enum value="0x92CE" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CE" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT"/>
+ <enum value="0x92CF" name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CF" name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT"/>
+ <enum value="0x92D0" name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92D1" name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92D2" name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum value="0x92D3" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+ <enum value="0x92D3" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT"/>
+ <enum value="0x92D4" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+ <enum value="0x92D4" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT"/>
+ <enum value="0x92D5" name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+ <enum value="0x92D5" name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT"/>
+ <enum value="0x92D6" name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum value="0x92D7" name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum value="0x92D8" name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum value="0x92D9" name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92DA" name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum value="0x92DB" name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ <enum value="0x92DC" name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <unused start="0x92DC" end="0x92DF" vendor="NV"/>
+ <enum value="0x92E0" name="GL_DEBUG_OUTPUT"/>
+ <enum value="0x92E0" name="GL_DEBUG_OUTPUT_KHR"/>
+ <enum value="0x92E1" name="GL_UNIFORM"/>
+ <enum value="0x92E2" name="GL_UNIFORM_BLOCK"/>
+ <enum value="0x92E3" name="GL_PROGRAM_INPUT"/>
+ <enum value="0x92E4" name="GL_PROGRAM_OUTPUT"/>
+ <enum value="0x92E5" name="GL_BUFFER_VARIABLE"/>
+ <enum value="0x92E6" name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum value="0x92E7" name="GL_IS_PER_PATCH"/>
+ <enum value="0x92E7" name="GL_IS_PER_PATCH_EXT"/>
+ <enum value="0x92E8" name="GL_VERTEX_SUBROUTINE"/>
+ <enum value="0x92E9" name="GL_TESS_CONTROL_SUBROUTINE"/>
+ <enum value="0x92EA" name="GL_TESS_EVALUATION_SUBROUTINE"/>
+ <enum value="0x92EB" name="GL_GEOMETRY_SUBROUTINE"/>
+ <enum value="0x92EC" name="GL_FRAGMENT_SUBROUTINE"/>
+ <enum value="0x92ED" name="GL_COMPUTE_SUBROUTINE"/>
+ <enum value="0x92EE" name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92EF" name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F0" name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F1" name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F2" name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F3" name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F4" name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum value="0x92F5" name="GL_ACTIVE_RESOURCES"/>
+ <enum value="0x92F6" name="GL_MAX_NAME_LENGTH"/>
+ <enum value="0x92F7" name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum value="0x92F8" name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum value="0x92F9" name="GL_NAME_LENGTH"/>
+ <enum value="0x92FA" name="GL_TYPE"/>
+ <enum value="0x92FB" name="GL_ARRAY_SIZE"/>
+ <enum value="0x92FC" name="GL_OFFSET"/>
+ <enum value="0x92FD" name="GL_BLOCK_INDEX"/>
+ <enum value="0x92FE" name="GL_ARRAY_STRIDE"/>
+ <enum value="0x92FF" name="GL_MATRIX_STRIDE"/>
+ <enum value="0x9300" name="GL_IS_ROW_MAJOR"/>
+ <enum value="0x9301" name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum value="0x9302" name="GL_BUFFER_BINDING"/>
+ <enum value="0x9303" name="GL_BUFFER_DATA_SIZE"/>
+ <enum value="0x9304" name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum value="0x9305" name="GL_ACTIVE_VARIABLES"/>
+ <enum value="0x9306" name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum value="0x9307" name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum value="0x9307" name="GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT"/>
+ <enum value="0x9308" name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum value="0x9308" name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT"/>
+ <enum value="0x9309" name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum value="0x9309" name="GL_REFERENCED_BY_GEOMETRY_SHADER_EXT"/>
+ <enum value="0x930A" name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum value="0x930B" name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum value="0x930C" name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum value="0x930D" name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum value="0x930E" name="GL_LOCATION"/>
+ <enum value="0x930F" name="GL_LOCATION_INDEX"/>
+ <enum value="0x9310" name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum value="0x9311" name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum value="0x9312" name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+ <enum value="0x9312" name="GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT"/>
+ <enum value="0x9313" name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum value="0x9314" name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum value="0x9315" name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum value="0x9316" name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum value="0x9317" name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+ <enum value="0x9317" name="GL_MAX_FRAMEBUFFER_LAYERS_EXT"/>
+ <enum value="0x9318" name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ <unused start="0x9319" end="0x9338" vendor="NV"/>
+ <enum value="0x9339" name="GL_WARP_SIZE_NV"/>
+ <enum value="0x933A" name="GL_WARPS_PER_SM_NV"/>
+ <enum value="0x933B" name="GL_SM_COUNT_NV"/>
+ <unused start="0x933C" end="0x9343" vendor="NV"/>
+ <enum value="0x9344" name="GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB"/>
+ <enum value="0x9345" name="GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB"/>
+ <unused start="0x9346" end="0x9349" vendor="NV"/>
+ <enum value="0x934A" name="GL_LOCATION_COMPONENT"/>
+ <enum value="0x934B" name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX"/>
+ <enum value="0x934C" name="GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE"/>
+ <unused start="0x934D" end="0x935B" vendor="NV"/>
+ <enum value="0x935C" name="GL_CLIP_ORIGIN"/>
+ <enum value="0x935D" name="GL_CLIP_DEPTH_MODE"/>
+ <enum value="0x935E" name="GL_NEGATIVE_ONE_TO_ONE"/>
+ <enum value="0x935F" name="GL_ZERO_TO_ONE"/>
+ <unused start="0x9360" end="0x9364" vendor="NV"/>
+ <enum value="0x9365" name="GL_CLEAR_TEXTURE"/>
+ <unused start="0x9366" end="0x9367" vendor="NV"/>
+ <enum value="0x9368" name="GL_FONT_GLYPHS_AVAILABLE_NV"/>
+ <enum value="0x9369" name="GL_FONT_TARGET_UNAVAILABLE_NV"/>
+ <enum value="0x936A" name="GL_FONT_UNAVAILABLE_NV"/>
+ <enum value="0x936B" name="GL_FONT_UNINTELLIGIBLE_NV"/>
+ <enum value="0x936C" name="GL_STANDARD_FONT_FORMAT_NV"/>
+ <enum value="0x936D" name="GL_FRAGMENT_INPUT_NV"/>
+ <unused start="0x936E" end="0x937F" vendor="NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9380" end="0x939F" vendor="ARB">
+ <enum value="0x9380" name="GL_NUM_SAMPLE_COUNTS"/>
+ <unused start="0x9381" end="0x939F" vendor="ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x93A0" end="0x93AF" vendor="ANGLE" comment="Khronos bug 8100">
+ <enum value="0x93A0" name="GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE"/>
+ <enum value="0x93A1" name="GL_BGRA8_EXT"/>
+ <enum value="0x93A2" name="GL_TEXTURE_USAGE_ANGLE"/>
+ <enum value="0x93A3" name="GL_FRAMEBUFFER_ATTACHMENT_ANGLE"/>
+ <enum value="0x93A4" name="GL_PACK_REVERSE_ROW_ORDER_ANGLE"/>
+ <unused start="0x93A5" vendor="ANGLE"/>
+ <enum value="0x93A6" name="GL_PROGRAM_BINARY_ANGLE"/>
+ <unused start="0x93A7" end="0x93AF" vendor="ANGLE"/>
+ </enums>
+
+ <enums namespace="GL" start="0x93B0" end="0x93EF" vendor="OES" comment="Khronos bug 8853">
+ <enum value="0x93B0" name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum value="0x93B1" name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum value="0x93B2" name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum value="0x93B3" name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum value="0x93B4" name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum value="0x93B5" name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum value="0x93B6" name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum value="0x93B7" name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum value="0x93B8" name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum value="0x93B9" name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum value="0x93BA" name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum value="0x93BB" name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum value="0x93BC" name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum value="0x93BD" name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <unused start="0x93BE" end="0x93BF" vendor="OES"/>
+ <enum value="0x93C0" name="GL_COMPRESSED_RGBA_ASTC_3x3x3_OES"/>
+ <enum value="0x93C1" name="GL_COMPRESSED_RGBA_ASTC_4x3x3_OES"/>
+ <enum value="0x93C2" name="GL_COMPRESSED_RGBA_ASTC_4x4x3_OES"/>
+ <enum value="0x93C3" name="GL_COMPRESSED_RGBA_ASTC_4x4x4_OES"/>
+ <enum value="0x93C4" name="GL_COMPRESSED_RGBA_ASTC_5x4x4_OES"/>
+ <enum value="0x93C5" name="GL_COMPRESSED_RGBA_ASTC_5x5x4_OES"/>
+ <enum value="0x93C6" name="GL_COMPRESSED_RGBA_ASTC_5x5x5_OES"/>
+ <enum value="0x93C7" name="GL_COMPRESSED_RGBA_ASTC_6x5x5_OES"/>
+ <enum value="0x93C8" name="GL_COMPRESSED_RGBA_ASTC_6x6x5_OES"/>
+ <enum value="0x93C9" name="GL_COMPRESSED_RGBA_ASTC_6x6x6_OES"/>
+ <unused start="0x93CA" end="0x93CF" vendor="OES"/>
+ <enum value="0x93D0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum value="0x93D1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum value="0x93D2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum value="0x93D3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum value="0x93D4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum value="0x93D5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum value="0x93D6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum value="0x93D7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum value="0x93D8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum value="0x93D9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum value="0x93DA" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum value="0x93DB" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum value="0x93DC" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum value="0x93DD" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ <unused start="0x93DE" end="0x93DF" vendor="OES"/>
+ <enum value="0x93E0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES"/>
+ <enum value="0x93E1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES"/>
+ <enum value="0x93E2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES"/>
+ <enum value="0x93E3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES"/>
+ <enum value="0x93E4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES"/>
+ <enum value="0x93E5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES"/>
+ <enum value="0x93E6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES"/>
+ <enum value="0x93E7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES"/>
+ <enum value="0x93E8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES"/>
+ <enum value="0x93E9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES"/>
+ <unused start="0x93EA" end="0x93EF" vendor="OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x93F0" end="0x94EF" vendor="APPLE" comment="Khronos bug 10233">
+ <enum value="0x93F0" name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG"/>
+ <enum value="0x93F1" name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG"/>
+ <unused start="0x93F2" end="0x94EF" vendor="APPLE"/>
+ </enums>
+
+ <enums namespace="GL" start="0x94F0" end="0x950F" vendor="INTEL" comment="Khronos bug 11345">
+ <enum value="0x94F0" name="GL_PERFQUERY_COUNTER_EVENT_INTEL"/>
+ <enum value="0x94F1" name="GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL"/>
+ <enum value="0x94F2" name="GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL"/>
+ <enum value="0x94F3" name="GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL"/>
+ <enum value="0x94F4" name="GL_PERFQUERY_COUNTER_RAW_INTEL"/>
+ <enum value="0x94F5" name="GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL"/>
+ <unused start="0x94F6" end="0x94F7" vendor="INTEL"/>
+ <enum value="0x94F8" name="GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL"/>
+ <enum value="0x94F9" name="GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL"/>
+ <enum value="0x94FA" name="GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL"/>
+ <enum value="0x94FB" name="GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL"/>
+ <enum value="0x94FC" name="GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL"/>
+ <enum value="0x94FD" name="GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL"/>
+ <enum value="0x94FE" name="GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL"/>
+ <enum value="0x94FF" name="GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL"/>
+ <enum value="0x9500" name="GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL"/>
+ <unused start="0x9501" end="0x950F" vendor="INTEL"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9510" end="0x952F" vendor="Broadcom" comment="Khronos bug 12203">
+ <unused start="0x9510" end="0x952F" vendor="Broadcom"/>
+ </enums>
+
+<!-- Enums reservable for future use. To reserve a new range, allocate one
+ or more multiples of 16 starting at the lowest available point in this
+ block and note it in a new <enums> block immediately above.
+
+ Please remember that new enumerant allocations must be obtained by
+ request to the Khronos API registrar (see comments at the top of this
+ file) File requests in the Khronos Bugzilla, OpenGL project, Registry
+ component. -->
+
+ <enums namespace="GL" start="0x9530" end="99999" vendor="ARB" comment="RESERVED FOR FUTURE ALLOCATIONS BY KHRONOS">
+ <unused start="0x9530" end="99999" comment="RESERVED"/>
+ </enums>
+
+<!-- Historical large block allocations, all unused except (in older days) by IBM -->
+ <enums namespace="GL" start="100000" end="100999" vendor="ARB" comment="GLU enums"/>
+ <enums namespace="GL" start="101000" end="101999" vendor="ARB" comment="Conformance test enums"/>
+ <enums namespace="GL" start="102000" end="102999" vendor="ARB" comment="Unused, unlikely to ever be used"/>
+
+ <enums namespace="GL" start="103000" end="103999" vendor="IBM" comment="IBM is out of the graphics hardware business. Most of this range will remain unused.">
+ <enum value="0x19262" name="GL_RASTER_POSITION_UNCLIPPED_IBM"/>
+ <enum value="103050" name="GL_CULL_VERTEX_IBM"/>
+ <enum value="103060" name="GL_ALL_STATIC_DATA_IBM"/>
+ <enum value="103061" name="GL_STATIC_VERTEX_ARRAY_IBM"/>
+ <enum value="103070" name="GL_VERTEX_ARRAY_LIST_IBM"/>
+ <enum value="103071" name="GL_NORMAL_ARRAY_LIST_IBM"/>
+ <enum value="103072" name="GL_COLOR_ARRAY_LIST_IBM"/>
+ <enum value="103073" name="GL_INDEX_ARRAY_LIST_IBM"/>
+ <enum value="103074" name="GL_TEXTURE_COORD_ARRAY_LIST_IBM"/>
+ <enum value="103075" name="GL_EDGE_FLAG_ARRAY_LIST_IBM"/>
+ <enum value="103076" name="GL_FOG_COORDINATE_ARRAY_LIST_IBM"/>
+ <enum value="103077" name="GL_SECONDARY_COLOR_ARRAY_LIST_IBM"/>
+ <enum value="103080" name="GL_VERTEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103081" name="GL_NORMAL_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103082" name="GL_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103083" name="GL_INDEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103084" name="GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103085" name="GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103086" name="GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103087" name="GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ </enums>
+
+ <enums namespace="GL" start="104000" end="104999" vendor="NEC" comment="NEC may be out of the graphics hardware business?"/>
+ <enums namespace="GL" start="105000" end="105999" vendor="Compaq" comment="Compaq was acquired by HP"/>
+ <enums namespace="GL" start="106000" end="106999" vendor="KPC" comment="Kubota Pacific is out of business"/>
+ <enums namespace="GL" start="107000" end="107999" vendor="PGI" comment="Portland Graphics was acquired by Template Graphics, which is out of business">
+ <!-- lots of <unused> areas here which won't be computed yet -->
+ <enum value="0x1A1F8" name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
+ <enum value="0x1A1FD" name="GL_CONSERVE_MEMORY_HINT_PGI"/>
+ <enum value="0x1A1FE" name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+ <enum value="0x1A202" name="GL_NATIVE_GRAPHICS_HANDLE_PGI"/>
+ <enum value="0x1A203" name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
+ <enum value="0x1A204" name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
+ <enum value="0x1A20C" name="GL_ALWAYS_FAST_HINT_PGI"/>
+ <enum value="0x1A20D" name="GL_ALWAYS_SOFT_HINT_PGI"/>
+ <enum value="0x1A20E" name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
+ <enum value="0x1A20F" name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
+ <enum value="0x1A210" name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
+ <enum value="0x1A211" name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
+ <enum value="0x1A216" name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
+ <enum value="0x1A217" name="GL_STRICT_LIGHTING_HINT_PGI"/>
+ <enum value="0x1A218" name="GL_STRICT_SCISSOR_HINT_PGI"/>
+ <enum value="0x1A219" name="GL_FULL_STIPPLE_HINT_PGI"/>
+ <enum value="0x1A220" name="GL_CLIP_NEAR_HINT_PGI"/>
+ <enum value="0x1A221" name="GL_CLIP_FAR_HINT_PGI"/>
+ <enum value="0x1A222" name="GL_WIDE_LINE_HINT_PGI"/>
+ <enum value="0x1A223" name="GL_BACK_NORMALS_HINT_PGI"/>
+ <enum value="0x1A22A" name="GL_VERTEX_DATA_HINT_PGI"/>
+ <enum value="0x1A22B" name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
+ <enum value="0x1A22C" name="GL_MATERIAL_SIDE_HINT_PGI"/>
+ <enum value="0x1A22D" name="GL_MAX_VERTEX_HINT_PGI"/>
+ </enums>
+
+ <enums namespace="GL" start="108000" end="108999" vendor="ES" comment="Evans and Sutherland is out of the graphics hardware business"/>
+
+ <!-- SECTION: GL command definitions. -->
+ <commands namespace="GL">
+ <command>
+ <proto>void <name>glAccum</name></proto>
+ <param group="AccumOp"><ptype>GLenum</ptype> <name>op</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>value</name></param>
+ <glx type="render" opcode="137"/>
+ </command>
+ <command>
+ <proto>void <name>glAccumxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLfixed</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveProgramEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveShaderProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveShaderProgramEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveStencilFaceEXT</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <glx type="render" opcode="4220"/>
+ </command>
+ <command>
+ <proto>void <name>glActiveTexture</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ <glx type="render" opcode="197"/>
+ </command>
+ <command>
+ <proto>void <name>glActiveTextureARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ <alias name="glActiveTexture"/>
+ <glx type="render" opcode="197"/>
+ </command>
+ <command>
+ <proto>void <name>glActiveVaryingNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFragmentOp1ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFragmentOp2ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFragmentOp3ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFunc</name></proto>
+ <param group="AlphaFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param><ptype>GLfloat</ptype> <name>ref</name></param>
+ <glx type="render" opcode="159"/>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFuncQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>func</name></param>
+ <param><ptype>GLclampf</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFuncx</name></proto>
+ <param><ptype>GLenum</ptype> <name>func</name></param>
+ <param><ptype>GLfixed</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFuncxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glApplyTextureEXT</name></proto>
+ <param group="LightTextureModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreProgramsResidentNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
+ <glx type="vendor" opcode="1293"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreTexturesResident</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
+ <glx type="single" opcode="143"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreTexturesResidentEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
+ <glx type="vendor" opcode="11"/>
+ </command>
+ <command>
+ <proto>void <name>glArrayElement</name></proto>
+ <param><ptype>GLint</ptype> <name>i</name></param>
+ </command>
+ <command>
+ <proto>void <name>glArrayElementEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>i</name></param>
+ <alias name="glArrayElement"/>
+ </command>
+ <command>
+ <proto>void <name>glArrayObjectATI</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAsyncMarkerSGIX</name></proto>
+ <param><ptype>GLuint</ptype> <name>marker</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAttachObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>containerObj</name></param>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <alias name="glAttachShader"/>
+ </command>
+ <command>
+ <proto>void <name>glAttachShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBegin</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="4"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginConditionalRender</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginConditionalRenderNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBeginConditionalRender"/>
+ <glx type="render" opcode="348"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginConditionalRenderNVX</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginFragmentShaderATI</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glBeginOcclusionQueryNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginPerfMonitorAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginPerfQueryINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>queryHandle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginQuery</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <glx type="render" opcode="231"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginQueryARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glBeginQuery"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginQueryEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginQueryIndexed</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginTransformFeedback</name></proto>
+ <param><ptype>GLenum</ptype> <name>primitiveMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginTransformFeedbackEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>primitiveMode</name></param>
+ <alias name="glBeginTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginTransformFeedbackNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>primitiveMode</name></param>
+ <alias name="glBeginTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginVertexShaderEXT</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glBeginVideoCaptureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindAttribLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindAttribLocationARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glBindAttribLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBuffer</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glBindBuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferBase</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferBaseEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glBindBufferBase"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferBaseNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glBindBufferBase"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferOffsetEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferOffsetNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <alias name="glBindBufferOffsetEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferRange</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glBindBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferRangeNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glBindBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBuffersBase</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBuffersRange</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ <param len="count">const <ptype>GLintptr</ptype> *<name>offsets</name></param>
+ <param len="count">const <ptype>GLsizeiptr</ptype> *<name>sizes</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFragDataLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFragDataLocationEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <alias name="glBindFragDataLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFragDataLocationIndexed</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>colorNumber</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFragmentShaderATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFramebuffer</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <glx type="render" opcode="236"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFramebufferEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <glx type="render" opcode="4319"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFramebufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindImageTexture</name></proto>
+ <param><ptype>GLuint</ptype> <name>unit</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindImageTextureEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ <param><ptype>GLint</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindImageTextures</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindLightParameterEXT</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindMaterialParameterEXT</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindMultiTextureEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindParameterEXT</name></proto>
+ <param group="VertexShaderParameterEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="render" opcode="4180"/>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glBindProgramARB"/>
+ <glx type="render" opcode="4180"/>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramPipeline</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramPipelineEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindRenderbuffer</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="render" opcode="235"/>
+ </command>
+ <command>
+ <proto>void <name>glBindRenderbufferEXT</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="render" opcode="4316"/>
+ </command>
+ <command>
+ <proto>void <name>glBindRenderbufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindSampler</name></proto>
+ <param><ptype>GLuint</ptype> <name>unit</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindSamplers</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>samplers</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindTexGenParameterEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>unit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTexture</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <glx type="render" opcode="4117"/>
+ </command>
+ <command>
+ <proto>void <name>glBindTextureEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <alias name="glBindTexture"/>
+ <glx type="render" opcode="4117"/>
+ </command>
+ <command>
+ <proto>void <name>glBindTextureUnit</name></proto>
+ <param><ptype>GLuint</ptype> <name>unit</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindTextureUnitParameterEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>unit</name></param>
+ <param group="VertexShaderTextureUnitParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTextures</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTransformFeedback</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTransformFeedbackNV</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <glx type="render" opcode="350"/>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexArrayAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexArrayOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <alias name="glBindVertexArray"/>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexBuffers</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ <param len="count">const <ptype>GLintptr</ptype> *<name>offsets</name></param>
+ <param len="count">const <ptype>GLsizei</ptype> *<name>strides</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexShaderEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVideoCaptureStreamBufferNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>frame_region</name></param>
+ <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVideoCaptureStreamTextureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>frame_region</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3bEXT</name></proto>
+ <param><ptype>GLbyte</ptype> <name>bx</name></param>
+ <param><ptype>GLbyte</ptype> <name>by</name></param>
+ <param><ptype>GLbyte</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3bvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3bvEXT</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3dEXT</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>bx</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>by</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3dvEXT</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3fEXT</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>bx</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>by</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3fvEXT</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3iEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>bx</name></param>
+ <param><ptype>GLint</ptype> <name>by</name></param>
+ <param><ptype>GLint</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3ivEXT</name></proto>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3sEXT</name></proto>
+ <param><ptype>GLshort</ptype> <name>bx</name></param>
+ <param><ptype>GLshort</ptype> <name>by</name></param>
+ <param><ptype>GLshort</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3svEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3svEXT</name></proto>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormalPointerEXT</name></proto>
+ <param group="BinormalPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBitmap</name></proto>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>xorig</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>yorig</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>xmove</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>ymove</name></param>
+ <param len="COMPSIZE(width,height)">const <ptype>GLubyte</ptype> *<name>bitmap</name></param>
+ <glx type="render" opcode="5"/>
+ <glx type="render" opcode="311" name="glBitmapPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glBitmapxOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLfixed</ptype> <name>xorig</name></param>
+ <param><ptype>GLfixed</ptype> <name>yorig</name></param>
+ <param><ptype>GLfixed</ptype> <name>xmove</name></param>
+ <param><ptype>GLfixed</ptype> <name>ymove</name></param>
+ <param len="COMPSIZE(width,height)">const <ptype>GLubyte</ptype> *<name>bitmap</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendBarrierKHR</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glBlendBarrierNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glBlendColor</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="4096"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendColorEXT</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <alias name="glBlendColor"/>
+ <glx type="render" opcode="4096"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendColorxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>red</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>green</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquation</name></proto>
+ <param group="BlendEquationMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="4097"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationEXT</name></proto>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquation"/>
+ <glx type="render" opcode="4097"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquationi"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparate</name></proto>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <glx type="render" opcode="4228"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateEXT</name></proto>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparate"/>
+ <glx type="render" opcode="4228"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparatei</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateiARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationi</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationiARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquationi"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquationi"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunc</name></proto>
+ <param group="BlendingFactorSrc"><ptype>GLenum</ptype> <name>sfactor</name></param>
+ <param group="BlendingFactorDest"><ptype>GLenum</ptype> <name>dfactor</name></param>
+ <glx type="render" opcode="160"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ <alias name="glBlendFunci"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparate</name></proto>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorAlpha</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorAlpha</name></param>
+ <glx type="render" opcode="4134"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateEXT</name></proto>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorAlpha</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorAlpha</name></param>
+ <alias name="glBlendFuncSeparate"/>
+ <glx type="render" opcode="4134"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateINGR</name></proto>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorAlpha</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorAlpha</name></param>
+ <alias name="glBlendFuncSeparate"/>
+ <glx type="render" opcode="4134"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ <alias name="glBlendFuncSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparatei</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateiARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ <alias name="glBlendFuncSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ <alias name="glBlendFuncSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunci</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunciARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ <alias name="glBlendFunci"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunciEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ <alias name="glBlendFunci"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendParameteriNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebuffer</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param group="ClearBufferMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ <glx type="render" opcode="4330"/>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebufferANGLE</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebufferEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param group="ClearBufferMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ <alias name="glBlitFramebuffer"/>
+ <glx type="render" opcode="4330"/>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebufferNV</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ <alias name="glBlitFramebuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glBlitNamedFramebuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>readFramebuffer</name></param>
+ <param><ptype>GLuint</ptype> <name>drawFramebuffer</name></param>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferAddressRangeNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>address</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferData</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ <param group="BufferUsageARB"><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferDataARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferSizeARB"><ptype>GLsizeiptrARB</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ <param group="BufferUsageARB"><ptype>GLenum</ptype> <name>usage</name></param>
+ <alias name="glBufferData"/>
+ </command>
+ <command>
+ <proto>void <name>glBufferPageCommitmentARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param><ptype>GLboolean</ptype> <name>commit</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferParameteriAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferStorage</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferSubData</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferSubDataARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
+ <param group="BufferSizeARB"><ptype>GLsizeiptrARB</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ <alias name="glBufferSubData"/>
+ </command>
+ <command>
+ <proto>void <name>glCallList</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <glx type="render" opcode="1"/>
+ </command>
+ <command>
+ <proto>void <name>glCallLists</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="ListNameType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(n,type)">const void *<name>lists</name></param>
+ <glx type="render" opcode="2"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckFramebufferStatus</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="vendor" opcode="1427"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckFramebufferStatusEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glCheckFramebufferStatus"/>
+ <glx type="vendor" opcode="1427"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckFramebufferStatusOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckNamedFramebufferStatus</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="FramebufferStatus"><ptype>GLenum</ptype> <name>glCheckNamedFramebufferStatusEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClampColor</name></proto>
+ <param group="ClampColorTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ClampColorModeARB"><ptype>GLenum</ptype> <name>clamp</name></param>
+ <glx type="render" opcode="234"/>
+ </command>
+ <command>
+ <proto>void <name>glClampColorARB</name></proto>
+ <param group="ClampColorTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ClampColorModeARB"><ptype>GLenum</ptype> <name>clamp</name></param>
+ <alias name="glClampColor"/>
+ <glx type="render" opcode="234"/>
+ </command>
+ <command>
+ <proto>void <name>glClear</name></proto>
+ <param group="ClearBufferMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="127"/>
+ </command>
+ <command>
+ <proto>void <name>glClearAccum</name></proto>
+ <param><ptype>GLfloat</ptype> <name>red</name></param>
+ <param><ptype>GLfloat</ptype> <name>green</name></param>
+ <param><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="128"/>
+ </command>
+ <command>
+ <proto>void <name>glClearAccumxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>red</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>green</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferData</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferSubData</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferfi</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param><ptype>GLfloat</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>stencil</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferfv</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param len="COMPSIZE(buffer)">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param len="COMPSIZE(buffer)">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param len="COMPSIZE(buffer)">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearColor</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="130"/>
+ </command>
+ <command>
+ <proto>void <name>glClearColorIiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>red</name></param>
+ <param><ptype>GLint</ptype> <name>green</name></param>
+ <param><ptype>GLint</ptype> <name>blue</name></param>
+ <param><ptype>GLint</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="4292"/>
+ </command>
+ <command>
+ <proto>void <name>glClearColorIuiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>red</name></param>
+ <param><ptype>GLuint</ptype> <name>green</name></param>
+ <param><ptype>GLuint</ptype> <name>blue</name></param>
+ <param><ptype>GLuint</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="4293"/>
+ </command>
+ <command>
+ <proto>void <name>glClearColorx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearColorxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>red</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>green</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearDepth</name></proto>
+ <param><ptype>GLdouble</ptype> <name>depth</name></param>
+ <glx type="render" opcode="132"/>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthdNV</name></proto>
+ <param><ptype>GLdouble</ptype> <name>depth</name></param>
+ <glx type="render" opcode="4284"/>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthf</name></proto>
+ <param><ptype>GLfloat</ptype> <name>d</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthfOES</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>depth</name></param>
+ <glx type="render" opcode="4308"/>
+ <alias name="glClearDepthf"/>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearIndex</name></proto>
+ <param group="MaskedColorIndexValueF"><ptype>GLfloat</ptype> <name>c</name></param>
+ <glx type="render" opcode="129"/>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedBufferData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedBufferDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedBufferSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedFramebufferfi</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param>const <ptype>GLfloat</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>stencil</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedFramebufferfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedFramebufferiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param>const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedFramebufferuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearStencil</name></proto>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>s</name></param>
+ <glx type="render" opcode="131"/>
+ </command>
+ <command>
+ <proto>void <name>glClearTexImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearTexSubImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClientActiveTexture</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClientActiveTextureARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ <alias name="glClientActiveTexture"/>
+ </command>
+ <command>
+ <proto>void <name>glClientActiveVertexStreamATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClientAttribDefaultEXT</name></proto>
+ <param group="ClientAttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glClientWaitSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glClientWaitSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ <alias name="glClientWaitSync"/>
+ </command>
+ <command>
+ <proto>void <name>glClipControl</name></proto>
+ <param><ptype>GLenum</ptype> <name>origin</name></param>
+ <param><ptype>GLenum</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlane</name></proto>
+ <param group="ClipPlaneName"><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>equation</name></param>
+ <glx type="render" opcode="77"/>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanef</name></proto>
+ <param><ptype>GLenum</ptype> <name>p</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>eqn</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanefIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>p</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>eqn</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanefOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>equation</name></param>
+ <glx type="render" opcode="4312"/>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanex</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanexIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>p</name></param>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>eqn</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanexOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3b</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3bv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3bv</name></proto>
+ <param group="ColorB" len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="6"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3d</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3dv</name></proto>
+ <param group="ColorD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="7"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3f</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3fVertex3fvSUN</name></proto>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3fv</name></proto>
+ <param group="ColorF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="8"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>red</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>green</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4244"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3i</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3iv</name></proto>
+ <param group="ColorI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="9"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3s</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3sv</name></proto>
+ <param group="ColorS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="10"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3ub</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3ubv</name></proto>
+ <param group="ColorUB" len="3">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="11"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3ui</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3uiv</name></proto>
+ <param group="ColorUI" len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="12"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3us</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3usv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3usv</name></proto>
+ <param group="ColorUS" len="3">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="13"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>components</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4b</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4bv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4bv</name></proto>
+ <param group="ColorB" len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="14"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4d</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4dv</name></proto>
+ <param group="ColorD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="15"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4f</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4fNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4fNormal3fVertex3fvSUN</name></proto>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4fv</name></proto>
+ <param group="ColorF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="16"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>red</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>green</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>blue</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4hvNV</name></proto>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4245"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4i</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4iv</name></proto>
+ <param group="ColorI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="17"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4s</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4sv</name></proto>
+ <param group="ColorS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="18"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4ub</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex2fSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex2fvSUN</name></proto>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex3fSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex3fvSUN</name></proto>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubv</name></proto>
+ <param group="ColorUB" len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="19"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4ui</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4uiv</name></proto>
+ <param group="ColorUI" len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="20"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4us</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4usv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4usv</name></proto>
+ <param group="ColorUS" len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="21"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4x</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>components</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFragmentOp1ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMask</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFragmentOp2ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMask</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFragmentOp3ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMask</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorMask</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>red</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>green</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>blue</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="134"/>
+ </command>
+ <command>
+ <proto>void <name>glColorMaskIndexedEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>r</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>g</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>b</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>a</name></param>
+ <alias name="glColorMaski"/>
+ </command>
+ <command>
+ <proto>void <name>glColorMaski</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>r</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>g</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>b</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>a</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorMaskiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>r</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>g</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>b</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>a</name></param>
+ <alias name="glColorMaski"/>
+ </command>
+ <command>
+ <proto>void <name>glColorMaterial</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="ColorMaterialParameter"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="78"/>
+ </command>
+ <command>
+ <proto>void <name>glColorP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(size,type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointervINTEL</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorSubTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,count)">const void *<name>data</name></param>
+ <glx type="render" opcode="195"/>
+ <glx type="render" opcode="312" name="glColorSubTablePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glColorSubTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,count)">const void *<name>data</name></param>
+ <alias name="glColorSubTable"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>table</name></param>
+ <glx type="render" opcode="2053"/>
+ <glx type="render" opcode="313" name="glColorTablePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>table</name></param>
+ <alias name="glColorTable"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameterfv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2054"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameterfvSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glColorTableParameterfv"/>
+ <glx type="render" opcode="2054"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameteriv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2055"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameterivSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glColorTableParameteriv"/>
+ <glx type="render" opcode="2055"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>table</name></param>
+ <alias name="glColorTable"/>
+ <glx type="render" opcode="2053"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerInputNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>input</name></param>
+ <param group="CombinerMappingNV"><ptype>GLenum</ptype> <name>mapping</name></param>
+ <param group="CombinerComponentUsageNV"><ptype>GLenum</ptype> <name>componentUsage</name></param>
+ <glx type="render" opcode="4140"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerOutputNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>abOutput</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>cdOutput</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>sumOutput</name></param>
+ <param group="CombinerScaleNV"><ptype>GLenum</ptype> <name>scale</name></param>
+ <param group="CombinerBiasNV"><ptype>GLenum</ptype> <name>bias</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>abDotProduct</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>cdDotProduct</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>muxSum</name></param>
+ <glx type="render" opcode="4141"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameterfNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="4136"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameterfvNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4137"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameteriNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="4138"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameterivNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4139"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerStageParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompileShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompileShaderARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>shaderObj</name></param>
+ <alias name="glCompileShader"/>
+ </command>
+ <command>
+ <proto>void <name>glCompileShaderIncludeARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>path</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexSubImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexSubImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexSubImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="214"/>
+ <glx type="render" opcode="314" name="glCompressedTexImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage1DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexImage1D"/>
+ <glx type="render" opcode="214"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="215"/>
+ <glx type="render" opcode="315" name="glCompressedTexImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage2DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexImage2D"/>
+ <glx type="render" opcode="215"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="216"/>
+ <glx type="render" opcode="316" name="glCompressedTexImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage3DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexImage3D"/>
+ <glx type="render" opcode="216"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexImage3D"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="217"/>
+ <glx type="render" opcode="317" name="glCompressedTexSubImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage1DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexSubImage1D"/>
+ <glx type="render" opcode="217"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="218"/>
+ <glx type="render" opcode="318" name="glCompressedTexSubImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage2DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexSubImage2D"/>
+ <glx type="render" opcode="218"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <glx type="render" opcode="219"/>
+ <glx type="render" opcode="319" name="glCompressedTexSubImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage3DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexSubImage3D"/>
+ <glx type="render" opcode="219"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>data</name></param>
+ <alias name="glCompressedTexSubImage3D"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage1D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage2D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage3D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const void *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter1D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>image</name></param>
+ <glx type="render" opcode="4101"/>
+ <glx type="render" opcode="320" name="glConvolutionFilter1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter1DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>image</name></param>
+ <alias name="glConvolutionFilter1D"/>
+ <glx type="render" opcode="4101"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter2D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>image</name></param>
+ <glx type="render" opcode="4102"/>
+ <glx type="render" opcode="321" name="glConvolutionFilter2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter2DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>image</name></param>
+ <alias name="glConvolutionFilter2D"/>
+ <glx type="render" opcode="4102"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterf</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>params</name></param>
+ <glx type="render" opcode="4103"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterfEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>params</name></param>
+ <alias name="glConvolutionParameterf"/>
+ <glx type="render" opcode="4103"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterfv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4104"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterfvEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glConvolutionParameterfv"/>
+ <glx type="render" opcode="4104"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameteri</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>params</name></param>
+ <glx type="render" opcode="4105"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameteriEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>params</name></param>
+ <alias name="glConvolutionParameteri"/>
+ <glx type="render" opcode="4105"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameteriv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4106"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterivEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glConvolutionParameteriv"/>
+ <glx type="render" opcode="4106"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyBufferSubData</name></proto>
+ <param><ptype>GLenum</ptype> <name>readTarget</name></param>
+ <param><ptype>GLenum</ptype> <name>writeTarget</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>readOffset</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyBufferSubDataNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>readTarget</name></param>
+ <param><ptype>GLenum</ptype> <name>writeTarget</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>readOffset</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glCopyBufferSubData"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorSubTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="196"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorSubTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyColorSubTable"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="2056"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorTableSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyColorTable"/>
+ <glx type="render" opcode="2056"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter1D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="4107"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter1DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyConvolutionFilter1D"/>
+ <glx type="render" opcode="4107"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter2D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4108"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter2DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyConvolutionFilter2D"/>
+ <glx type="render" opcode="4108"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyImageSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>srcName</name></param>
+ <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+ <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+ <param><ptype>GLint</ptype> <name>srcX</name></param>
+ <param><ptype>GLint</ptype> <name>srcY</name></param>
+ <param><ptype>GLint</ptype> <name>srcZ</name></param>
+ <param><ptype>GLuint</ptype> <name>dstName</name></param>
+ <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+ <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+ <param><ptype>GLint</ptype> <name>dstX</name></param>
+ <param><ptype>GLint</ptype> <name>dstY</name></param>
+ <param><ptype>GLint</ptype> <name>dstZ</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcWidth</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcHeight</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcDepth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyImageSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>srcName</name></param>
+ <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+ <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+ <param><ptype>GLint</ptype> <name>srcX</name></param>
+ <param><ptype>GLint</ptype> <name>srcY</name></param>
+ <param><ptype>GLint</ptype> <name>srcZ</name></param>
+ <param><ptype>GLuint</ptype> <name>dstName</name></param>
+ <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+ <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+ <param><ptype>GLint</ptype> <name>dstX</name></param>
+ <param><ptype>GLint</ptype> <name>dstY</name></param>
+ <param><ptype>GLint</ptype> <name>dstZ</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcWidth</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcHeight</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcDepth</name></param>
+ <alias name="glCopyImageSubData"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyImageSubDataNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>srcName</name></param>
+ <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+ <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+ <param><ptype>GLint</ptype> <name>srcX</name></param>
+ <param><ptype>GLint</ptype> <name>srcY</name></param>
+ <param><ptype>GLint</ptype> <name>srcZ</name></param>
+ <param><ptype>GLuint</ptype> <name>dstName</name></param>
+ <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+ <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+ <param><ptype>GLint</ptype> <name>dstX</name></param>
+ <param><ptype>GLint</ptype> <name>dstY</name></param>
+ <param><ptype>GLint</ptype> <name>dstZ</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <glx type="render" opcode="4291"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexSubImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexSubImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexSubImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyNamedBufferSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>readBuffer</name></param>
+ <param><ptype>GLuint</ptype> <name>writeBuffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>readOffset</name></param>
+ <param><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>srcPath</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyPixels</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelCopyType"><ptype>GLenum</ptype> <name>type</name></param>
+ <glx type="render" opcode="172"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <glx type="render" opcode="4119"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage1DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <alias name="glCopyTexImage1D"/>
+ <glx type="render" opcode="4119"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <glx type="render" opcode="4120"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage2DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <alias name="glCopyTexImage2D"/>
+ <glx type="render" opcode="4120"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="4121"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage1DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyTexSubImage1D"/>
+ <glx type="render" opcode="4121"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4122"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage2DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyTexSubImage2D"/>
+ <glx type="render" opcode="4122"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4123"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage3DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyTexSubImage3D"/>
+ <glx type="render" opcode="4123"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyTexSubImage3D"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureLevelsAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>destinationTexture</name></param>
+ <param><ptype>GLuint</ptype> <name>sourceTexture</name></param>
+ <param><ptype>GLint</ptype> <name>sourceBaseLevel</name></param>
+ <param><ptype>GLsizei</ptype> <name>sourceLevelCount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage1D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage2D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage3D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverFillPathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverFillPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverStrokePathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverStrokePathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverageMaskNV</name></proto>
+ <param><ptype>GLboolean</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverageOperationNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>operation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCreateBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>buffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCreateFramebuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCreatePerfQueryINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>queryId</name></param>
+ <param><ptype>GLuint</ptype> *<name>queryHandle</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateProgram</name></proto>
+ </command>
+ <command>
+ <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glCreateProgramObjectARB</name></proto>
+ <alias name="glCreateProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glCreateProgramPipelines</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCreateQueries</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCreateRenderbuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCreateSamplers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>samplers</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShader</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ </command>
+ <command>
+ <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glCreateShaderObjectARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>shaderType</name></param>
+ <alias name="glCreateShader"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShaderProgramEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShaderProgramv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>strings</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShaderProgramvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> **<name>strings</name></param>
+ </command>
+ <command>
+ <proto group="sync"><ptype>GLsync</ptype> <name>glCreateSyncFromCLeventARB</name></proto>
+ <param group="cl_context"><ptype>struct _cl_context</ptype> *<name>context</name></param>
+ <param group="cl_event"><ptype>struct _cl_event</ptype> *<name>event</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCreateTextures</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>textures</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCreateTransformFeedbacks</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCreateVertexArrays</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>arrays</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCullFace</name></proto>
+ <param group="CullFaceMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="79"/>
+ </command>
+ <command>
+ <proto>void <name>glCullParameterdvEXT</name></proto>
+ <param group="CullParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCullParameterfvEXT</name></proto>
+ <param group="CullParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCurrentPaletteMatrixARB</name></proto>
+ <param><ptype>GLint</ptype> <name>index</name></param>
+ <glx type="render" opcode="4329"/>
+ </command>
+ <command>
+ <proto>void <name>glCurrentPaletteMatrixOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>matrixpaletteindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallback</name></proto>
+ <param><ptype>GLDEBUGPROC</ptype> <name>callback</name></param>
+ <param>const void *<name>userParam</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallbackAMD</name></proto>
+ <param><ptype>GLDEBUGPROCAMD</ptype> <name>callback</name></param>
+ <param>void *<name>userParam</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallbackARB</name></proto>
+ <param><ptype>GLDEBUGPROCARB</ptype> <name>callback</name></param>
+ <param len="COMPSIZE(callback)">const void *<name>userParam</name></param>
+ <alias name="glDebugMessageCallback"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallbackKHR</name></proto>
+ <param><ptype>GLDEBUGPROCKHR</ptype> <name>callback</name></param>
+ <param>const void *<name>userParam</name></param>
+ <alias name="glDebugMessageCallback"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageControl</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enabled</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageControlARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enabled</name></param>
+ <alias name="glDebugMessageControl"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageControlKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param><ptype>GLboolean</ptype> <name>enabled</name></param>
+ <alias name="glDebugMessageControl"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageEnableAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>category</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enabled</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsert</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(buf,length)">const <ptype>GLchar</ptype> *<name>buf</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsertAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>category</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const <ptype>GLchar</ptype> *<name>buf</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsertARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const <ptype>GLchar</ptype> *<name>buf</name></param>
+ <alias name="glDebugMessageInsert"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsertKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>buf</name></param>
+ <alias name="glDebugMessageInsert"/>
+ </command>
+ <command>
+ <proto>void <name>glDeformSGIX</name></proto>
+ <param group="FfdMaskSGIX"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="2075"/>
+ </command>
+ <command>
+ <proto>void <name>glDeformationMap3dSGIX</name></proto>
+ <param group="FfdTargetSGIX"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w2</name></param>
+ <param><ptype>GLint</ptype> <name>wstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>worder</name></param>
+ <param group="CoordD" len="COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2073"/>
+ </command>
+ <command>
+ <proto>void <name>glDeformationMap3fSGIX</name></proto>
+ <param group="FfdTargetSGIX"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w2</name></param>
+ <param><ptype>GLint</ptype> <name>wstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>worder</name></param>
+ <param group="CoordF" len="COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2074"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteAsyncMarkersSGIX</name></proto>
+ <param><ptype>GLuint</ptype> <name>marker</name></param>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteBuffersARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ <alias name="glDeleteBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFencesAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n">const <ptype>GLuint</ptype> *<name>fences</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFencesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n">const <ptype>GLuint</ptype> *<name>fences</name></param>
+ <glx type="vendor" opcode="1276"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFragmentShaderATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFramebuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <glx type="render" opcode="4320"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFramebuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <alias name="glDeleteFramebuffers"/>
+ <glx type="render" opcode="4320"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFramebuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteLists</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ <glx type="single" opcode="103"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteNamedStringARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteNamesAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ <param len="num">const <ptype>GLuint</ptype> *<name>names</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteOcclusionQueriesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeletePathsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeletePerfMonitorsAMD</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>monitors</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeletePerfQueryINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>queryHandle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="single" opcode="202"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramPipelines</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramPipelinesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramsARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <glx type="vendor" opcode="1294"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <alias name="glDeleteProgramsARB"/>
+ <glx type="vendor" opcode="1294"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteQueries</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <glx type="single" opcode="161"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteQueriesARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glDeleteQueries"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteQueriesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteRenderbuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <glx type="render" opcode="4317"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteRenderbuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <alias name="glDeleteRenderbuffers"/>
+ <glx type="render" opcode="4317"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteRenderbuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteSamplers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>samplers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <glx type="single" opcode="195"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <alias name="glDeleteSync"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTextures</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="single" opcode="144"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTexturesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="vendor" opcode="12"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTransformFeedbacks</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTransformFeedbacksNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glDeleteTransformFeedbacks"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexArrays</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>arrays</name></param>
+ <glx type="render" opcode="351"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexArraysAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>arrays</name></param>
+ <alias name="glDeleteVertexArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexArraysOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>arrays</name></param>
+ <alias name="glDeleteVertexArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexShaderEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthBoundsEXT</name></proto>
+ <param group="ClampedFloat64"><ptype>GLclampd</ptype> <name>zmin</name></param>
+ <param group="ClampedFloat64"><ptype>GLclampd</ptype> <name>zmax</name></param>
+ <glx type="render" opcode="4229"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthBoundsdNV</name></proto>
+ <param><ptype>GLdouble</ptype> <name>zmin</name></param>
+ <param><ptype>GLdouble</ptype> <name>zmax</name></param>
+ <glx type="render" opcode="4285"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthFunc</name></proto>
+ <param group="DepthFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <glx type="render" opcode="164"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthMask</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>flag</name></param>
+ <glx type="render" opcode="135"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRange</name></proto>
+ <param><ptype>GLdouble</ptype> <name>near</name></param>
+ <param><ptype>GLdouble</ptype> <name>far</name></param>
+ <glx type="render" opcode="174"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangeArrayv</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangeIndexed</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>n</name></param>
+ <param><ptype>GLdouble</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangedNV</name></proto>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ <glx type="render" opcode="4283"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangefOES</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>n</name></param>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>f</name></param>
+ <glx type="render" opcode="4309"/>
+ <alias name="glDepthRangef"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangexOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>n</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDetachObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>containerObj</name></param>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>attachedObj</name></param>
+ <alias name="glDetachShader"/>
+ </command>
+ <command>
+ <proto>void <name>glDetachShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDetailTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2051"/>
+ </command>
+ <command>
+ <proto>void <name>glDisable</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>cap</name></param>
+ <glx type="render" opcode="138"/>
+ </command>
+ <command>
+ <proto>void <name>glDisableClientState</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableClientStateIndexedEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableClientStateiEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableDriverControlQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>driverControl</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glDisablei"/>
+ </command>
+ <command>
+ <proto>void <name>glDisableVariantClientStateEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexArrayAttrib</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexArrayAttribEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexArrayEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexAttribAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexAttribArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexAttribArrayARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glDisableVertexAttribArray"/>
+ </command>
+ <command>
+ <proto>void <name>glDisablei</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableiEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glDisablei"/>
+ </command>
+ <command>
+ <proto>void <name>glDiscardFramebufferEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param len="numAttachments">const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDispatchCompute</name></proto>
+ <param><ptype>GLuint</ptype> <name>num_groups_x</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_y</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDispatchComputeGroupSizeARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>num_groups_x</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_y</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_z</name></param>
+ <param><ptype>GLuint</ptype> <name>group_size_x</name></param>
+ <param><ptype>GLuint</ptype> <name>group_size_y</name></param>
+ <param><ptype>GLuint</ptype> <name>group_size_z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDispatchComputeIndirect</name></proto>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>indirect</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArrays</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <glx type="render" opcode="193"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <alias name="glDrawArrays"/>
+ <glx type="render" opcode="4116"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysIndirect</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param>const void *<name>indirect</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedANGLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawArraysInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedARB</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawArraysInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedBaseInstance</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLuint</ptype> <name>baseinstance</name></param>
+ </command>
+ <command comment="primcount should be renamed to instanceCount for OpenGL ES">
+ <proto>void <name>glDrawArraysInstancedEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>start</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawArraysInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedNV</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawArraysInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffer</name></proto>
+ <param group="DrawBufferMode"><ptype>GLenum</ptype> <name>buf</name></param>
+ <glx type="render" opcode="126"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferModeATI" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <glx type="render" opcode="233"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferModeATI" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <alias name="glDrawBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersATI</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferModeATI" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <alias name="glDrawBuffers"/>
+ <glx type="render" opcode="233"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <alias name="glDrawBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersIndexedEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLenum</ptype> *<name>location</name></param>
+ <param len="n">const <ptype>GLint</ptype> *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementArrayATI</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElements</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsBaseVertex</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsIndirect</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indirect</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedANGLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawElementsInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedARB</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawElementsInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedBaseInstance</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="count">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLuint</ptype> <name>baseinstance</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedBaseVertex</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedBaseVertexBaseInstance</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="count">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ <param><ptype>GLuint</ptype> <name>baseinstance</name></param>
+ </command>
+ <command comment="primcount should be renamed to instanceCount for OpenGL ES">
+ <proto>void <name>glDrawElementsInstancedEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawElementsInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedNV</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawElementsInstanced"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawMeshArraysSUN</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawPixels</name></proto>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="173"/>
+ <glx type="render" opcode="322" name="glDrawPixelsPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementArrayATI</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElements</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementsBaseVertex</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementsEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const void *<name>indices</name></param>
+ <alias name="glDrawRangeElements"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexfOES</name></proto>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>width</name></param>
+ <param><ptype>GLfloat</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexfvOES</name></proto>
+ <param>const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexiOES</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>width</name></param>
+ <param><ptype>GLint</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexivOES</name></proto>
+ <param>const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexsOES</name></proto>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>width</name></param>
+ <param><ptype>GLshort</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexsvOES</name></proto>
+ <param>const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTextureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLfloat</ptype> <name>x0</name></param>
+ <param><ptype>GLfloat</ptype> <name>y0</name></param>
+ <param><ptype>GLfloat</ptype> <name>x1</name></param>
+ <param><ptype>GLfloat</ptype> <name>y1</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>s0</name></param>
+ <param><ptype>GLfloat</ptype> <name>t0</name></param>
+ <param><ptype>GLfloat</ptype> <name>s1</name></param>
+ <param><ptype>GLfloat</ptype> <name>t1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ <param><ptype>GLfixed</ptype> <name>width</name></param>
+ <param><ptype>GLfixed</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexxvOES</name></proto>
+ <param>const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedback</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackNV</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glDrawTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackStream</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackStreamInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEGLImageTargetRenderbufferStorageOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLeglImageOES</ptype> <name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEGLImageTargetTexture2DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLeglImageOES</ptype> <name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlag</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>flag</name></param>
+ <vecequiv name="glEdgeFlagv"/>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagFormatNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagPointer</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagPointerEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean" len="COMPSIZE(stride,count)">const <ptype>GLboolean</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="BooleanPointer" len="COMPSIZE(stride)">const <ptype>GLboolean</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagv</name></proto>
+ <param group="Boolean" len="1">const <ptype>GLboolean</ptype> *<name>flag</name></param>
+ <glx type="render" opcode="22"/>
+ </command>
+ <command>
+ <proto>void <name>glElementPointerAPPLE</name></proto>
+ <param group="ElementPointerTypeATI"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(type)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glElementPointerATI</name></proto>
+ <param group="ElementPointerTypeATI"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(type)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnable</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>cap</name></param>
+ <glx type="render" opcode="139"/>
+ </command>
+ <command>
+ <proto>void <name>glEnableClientState</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableClientStateIndexedEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableClientStateiEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableDriverControlQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>driverControl</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glEnablei"/>
+ </command>
+ <command>
+ <proto>void <name>glEnableVariantClientStateEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexArrayAttrib</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexArrayAttribEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexArrayEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexAttribAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexAttribArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexAttribArrayARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glEnableVertexAttribArray"/>
+ </command>
+ <command>
+ <proto>void <name>glEnablei</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableiEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glEnablei"/>
+ </command>
+ <command>
+ <proto>void <name>glEnd</name></proto>
+ <glx type="render" opcode="23"/>
+ </command>
+ <command>
+ <proto>void <name>glEndConditionalRender</name></proto>
+ <glx type="render" opcode="349"/>
+ </command>
+ <command>
+ <proto>void <name>glEndConditionalRenderNV</name></proto>
+ <alias name="glEndConditionalRender"/>
+ </command>
+ <command>
+ <proto>void <name>glEndConditionalRenderNVX</name></proto>
+ <alias name="glEndConditionalRender"/>
+ </command>
+ <command>
+ <proto>void <name>glEndFragmentShaderATI</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndList</name></proto>
+ <glx type="single" opcode="102"/>
+ </command>
+ <command>
+ <proto>void <name>glEndOcclusionQueryNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndPerfMonitorAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndPerfQueryINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>queryHandle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndQuery</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="232"/>
+ </command>
+ <command>
+ <proto>void <name>glEndQueryARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glEndQuery"/>
+ </command>
+ <command>
+ <proto>void <name>glEndQueryEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndQueryIndexed</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndTilingQCOM</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>preserveMask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndTransformFeedback</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndTransformFeedbackEXT</name></proto>
+ <alias name="glEndTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glEndTransformFeedbackNV</name></proto>
+ <alias name="glEndTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glEndVertexShaderEXT</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndVideoCaptureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u</name></param>
+ <vecequiv name="glEvalCoord1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1dv</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>u</name></param>
+ <glx type="render" opcode="151"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u</name></param>
+ <vecequiv name="glEvalCoord1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1fv</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>u</name></param>
+ <glx type="render" opcode="152"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>u</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1xvOES</name></proto>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v</name></param>
+ <vecequiv name="glEvalCoord2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>u</name></param>
+ <glx type="render" opcode="153"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v</name></param>
+ <vecequiv name="glEvalCoord2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>u</name></param>
+ <glx type="render" opcode="154"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>u</name></param>
+ <param><ptype>GLfixed</ptype> <name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalMapsNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="EvalMapsModeNV"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalMesh1</name></proto>
+ <param group="MeshMode1"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i1</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i2</name></param>
+ <glx type="render" opcode="155"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalMesh2</name></proto>
+ <param group="MeshMode2"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i1</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i2</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>j1</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>j2</name></param>
+ <glx type="render" opcode="157"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalPoint1</name></proto>
+ <param><ptype>GLint</ptype> <name>i</name></param>
+ <glx type="render" opcode="156"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalPoint2</name></proto>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>j</name></param>
+ <glx type="render" opcode="158"/>
+ </command>
+ <command>
+ <proto>void <name>glExecuteProgramNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4181"/>
+ </command>
+ <command>
+ <proto>void <name>glExtGetBufferPointervQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param>void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetBuffersQCOM</name></proto>
+ <param len="maxBuffers"><ptype>GLuint</ptype> *<name>buffers</name></param>
+ <param><ptype>GLint</ptype> <name>maxBuffers</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>numBuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetFramebuffersQCOM</name></proto>
+ <param len="maxFramebuffers"><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <param><ptype>GLint</ptype> <name>maxFramebuffers</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>numFramebuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetProgramBinarySourceQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLchar</ptype> *<name>source</name></param>
+ <param><ptype>GLint</ptype> *<name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetProgramsQCOM</name></proto>
+ <param len="maxPrograms"><ptype>GLuint</ptype> *<name>programs</name></param>
+ <param><ptype>GLint</ptype> <name>maxPrograms</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>numPrograms</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetRenderbuffersQCOM</name></proto>
+ <param len="maxRenderbuffers"><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <param><ptype>GLint</ptype> <name>maxRenderbuffers</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>numRenderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetShadersQCOM</name></proto>
+ <param len="maxShaders"><ptype>GLuint</ptype> *<name>shaders</name></param>
+ <param><ptype>GLint</ptype> <name>maxShaders</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>numShaders</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetTexLevelParameterivQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetTexSubImageQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>void *<name>texels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetTexturesQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>textures</name></param>
+ <param><ptype>GLint</ptype> <name>maxTextures</name></param>
+ <param><ptype>GLint</ptype> *<name>numTextures</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glExtIsProgramBinaryQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtTexObjectStateOverrideiQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtractComponentEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>src</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFeedbackBuffer</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param group="FeedbackType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="FeedbackElement" len="size"><ptype>GLfloat</ptype> *<name>buffer</name></param>
+ <glx type="single" opcode="105"/>
+ </command>
+ <command>
+ <proto>void <name>glFeedbackBufferxOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="n">const <ptype>GLfixed</ptype> *<name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="sync"><ptype>GLsync</ptype> <name>glFenceSync</name></proto>
+ <param><ptype>GLenum</ptype> <name>condition</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLsync</ptype> <name>glFenceSyncAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>condition</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <alias name="glFenceSync"/>
+ </command>
+ <command>
+ <proto>void <name>glFinalCombinerInputNV</name></proto>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>input</name></param>
+ <param group="CombinerMappingNV"><ptype>GLenum</ptype> <name>mapping</name></param>
+ <param group="CombinerComponentUsageNV"><ptype>GLenum</ptype> <name>componentUsage</name></param>
+ <glx type="render" opcode="4142"/>
+ </command>
+ <command>
+ <proto>void <name>glFinish</name></proto>
+ <glx type="single" opcode="108"/>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glFinishAsyncSGIX</name></proto>
+ <param len="1"><ptype>GLuint</ptype> *<name>markerp</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinishFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinishFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <glx type="vendor" opcode="1312"/>
+ </command>
+ <command>
+ <proto>void <name>glFinishObjectAPPLE</name></proto>
+ <param group="ObjectTypeAPPLE"><ptype>GLenum</ptype> <name>object</name></param>
+ <param><ptype>GLint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinishTextureSUNX</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glFlush</name></proto>
+ <glx type="single" opcode="142"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedBufferRange</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedBufferRangeAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glFlushMappedBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <alias name="glFlushMappedBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedNamedBufferRange</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedNamedBufferRangeEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushPixelDataRangeNV</name></proto>
+ <param group="PixelDataRangeTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushRasterSGIX</name></proto>
+ <glx type="vendor" opcode="4105"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushStaticDataIBM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushVertexArrayRangeAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushVertexArrayRangeNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordFormatNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordPointer</name></proto>
+ <param group="FogPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordPointerEXT</name></proto>
+ <param group="FogPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ <alias name="glFogCoordPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordPointerListIBM</name></proto>
+ <param group="FogPointerTypeIBM"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordd</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>coord</name></param>
+ <vecequiv name="glFogCoorddv"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoorddEXT</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>coord</name></param>
+ <alias name="glFogCoordd"/>
+ <vecequiv name="glFogCoorddvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoorddv</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>coord</name></param>
+ <glx type="render" opcode="4125"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoorddvEXT</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>coord</name></param>
+ <alias name="glFogCoorddv"/>
+ <glx type="render" opcode="4125"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordf</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>coord</name></param>
+ <vecequiv name="glFogCoordfv"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordfEXT</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>coord</name></param>
+ <alias name="glFogCoordf"/>
+ <vecequiv name="glFogCoordfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordfv</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>coord</name></param>
+ <glx type="render" opcode="4124"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordfvEXT</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>coord</name></param>
+ <alias name="glFogCoordfv"/>
+ <glx type="render" opcode="4124"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordhNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>fog</name></param>
+ <vecequiv name="glFogCoordhvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordhvNV</name></proto>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>fog</name></param>
+ <glx type="render" opcode="4254"/>
+ </command>
+ <command>
+ <proto>void <name>glFogFuncSGIS</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2067"/>
+ </command>
+ <command>
+ <proto>void <name>glFogf</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="80"/>
+ </command>
+ <command>
+ <proto>void <name>glFogfv</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="81"/>
+ </command>
+ <command>
+ <proto>void <name>glFogi</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="82"/>
+ </command>
+ <command>
+ <proto>void <name>glFogiv</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="83"/>
+ </command>
+ <command>
+ <proto>void <name>glFogx</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentColorMaterialSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModelfSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModelfvSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModeliSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModelivSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightfSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightfvSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightiSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightivSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialfSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialfvSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialiSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialivSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrameTerminatorGREMEDY</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glFrameZoomSGIX</name></proto>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>factor</name></param>
+ <glx type="render" opcode="2072"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferDrawBufferEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="DrawBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferDrawBuffersEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferMode" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferParameteri</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferReadBufferEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="ReadBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferRenderbuffer</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="render" opcode="4324"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferRenderbufferEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <alias name="glFramebufferRenderbuffer"/>
+ <glx type="render" opcode="4324"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferRenderbufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture1D</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <glx type="render" opcode="4321"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture1DEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTexture1D"/>
+ <glx type="render" opcode="4321"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2D</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <glx type="render" opcode="4322"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTexture2D"/>
+ <glx type="render" opcode="4322"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DMultisampleEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DMultisampleIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture3D</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <glx type="render" opcode="4323"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture3DEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <alias name="glFramebufferTexture3D"/>
+ <glx type="render" opcode="4323"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <alias name="glFramebufferTexture3D"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureARB</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTexture"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTextureARB"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureFaceARB</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>face</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureFaceEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>face</name></param>
+ <alias name="glFramebufferTextureFaceARB"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureLayer</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ <glx type="render" opcode="237"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureLayerARB</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ <alias name="glFramebufferTextureLayer"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureLayerEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ <alias name="glFramebufferTextureLayer"/>
+ </command>
+ <command>
+ <proto>void <name>glFreeObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrontFace</name></proto>
+ <param group="FrontFaceDirection"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="84"/>
+ </command>
+ <command>
+ <proto>void <name>glFrustum</name></proto>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ <glx type="render" opcode="175"/>
+ </command>
+ <command>
+ <proto>void <name>glFrustumf</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrustumfOES</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ <glx type="render" opcode="4310"/>
+ </command>
+ <command>
+ <proto>void <name>glFrustumx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrustumxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenAsyncMarkersSGIX</name></proto>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>buffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenBuffersARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>buffers</name></param>
+ <alias name="glGenBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glGenFencesAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n"><ptype>GLuint</ptype> *<name>fences</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenFencesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n"><ptype>GLuint</ptype> *<name>fences</name></param>
+ <glx type="vendor" opcode="1277"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenFragmentShadersATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenFramebuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <glx type="vendor" opcode="1426"/>
+ </command>
+ <command>
+ <proto>void <name>glGenFramebuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <alias name="glGenFramebuffers"/>
+ <glx type="vendor" opcode="1426"/>
+ </command>
+ <command>
+ <proto>void <name>glGenFramebuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ </command>
+ <command>
+ <proto group="List"><ptype>GLuint</ptype> <name>glGenLists</name></proto>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ <glx type="single" opcode="104"/>
+ </command>
+ <command>
+ <proto>void <name>glGenNamesAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ <param len="num"><ptype>GLuint</ptype> *<name>names</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenOcclusionQueriesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto group="Path"><ptype>GLuint</ptype> <name>glGenPathsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenPerfMonitorsAMD</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>monitors</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramPipelines</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramPipelinesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramsARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>programs</name></param>
+ <glx type="vendor" opcode="1295"/>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>programs</name></param>
+ <alias name="glGenProgramsARB"/>
+ <glx type="vendor" opcode="1295"/>
+ </command>
+ <command>
+ <proto>void <name>glGenQueries</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <glx type="single" opcode="162"/>
+ </command>
+ <command>
+ <proto>void <name>glGenQueriesARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glGenQueries"/>
+ </command>
+ <command>
+ <proto>void <name>glGenQueriesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenRenderbuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <glx type="vendor" opcode="1423"/>
+ </command>
+ <command>
+ <proto>void <name>glGenRenderbuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <alias name="glGenRenderbuffers"/>
+ <glx type="vendor" opcode="1423"/>
+ </command>
+ <command>
+ <proto>void <name>glGenRenderbuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenSamplers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>samplers</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenSymbolsEXT</name></proto>
+ <param group="DataTypeEXT"><ptype>GLenum</ptype> <name>datatype</name></param>
+ <param group="VertexShaderStorageTypeEXT"><ptype>GLenum</ptype> <name>storagetype</name></param>
+ <param group="ParameterRangeEXT"><ptype>GLenum</ptype> <name>range</name></param>
+ <param><ptype>GLuint</ptype> <name>components</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenTextures</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n"><ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="single" opcode="145"/>
+ </command>
+ <command>
+ <proto>void <name>glGenTexturesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n"><ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="vendor" opcode="13"/>
+ </command>
+ <command>
+ <proto>void <name>glGenTransformFeedbacks</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenTransformFeedbacksNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glGenTransformFeedbacks"/>
+ </command>
+ <command>
+ <proto>void <name>glGenVertexArrays</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>arrays</name></param>
+ <glx type="single" opcode="206"/>
+ </command>
+ <command>
+ <proto>void <name>glGenVertexArraysAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>arrays</name></param>
+ <alias name="glGenVertexArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glGenVertexArraysOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>arrays</name></param>
+ <alias name="glGenVertexArrays"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenVertexShadersEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMipmap</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="4325"/>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMipmapEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glGenerateMipmap"/>
+ <glx type="render" opcode="4325"/>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMipmapOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMultiTexMipmapEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateTextureMipmap</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateTextureMipmapEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveAtomicCounterBufferiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>bufferIndex</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveAttrib</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveAttribARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="maxLength"><ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetActiveAttrib"/>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveSubroutineName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufsize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveSubroutineUniformName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufsize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveSubroutineUniformiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniform</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="maxLength"><ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetActiveUniform"/>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformBlockName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>uniformBlockName</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformBlockiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockIndex</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(program, uniformBlockIndex, pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>uniformName</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformsiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>uniformCount</name></param>
+ <param len="uniformCount">const <ptype>GLuint</ptype> *<name>uniformIndices</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(uniformCount, pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveVaryingNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="COMPSIZE(program,index,bufSize)"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetArrayObjectfvATI</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetArrayObjectivATI</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command comment="Could be an alias of glGetAttachedShaders except that GLhandleARB is different on MacOS X">
+ <proto>void <name>glGetAttachedObjectsARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>containerObj</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxCount</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="handleARB" len="maxCount"><ptype>GLhandleARB</ptype> *<name>obj</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetAttachedShaders</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxCount</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>count</name></param>
+ <param len="maxCount"><ptype>GLuint</ptype> *<name>shaders</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetAttribLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetAttribLocationARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param>const <ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetAttribLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBooleanIndexedvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean" len="COMPSIZE(target)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ <alias name="glGetBooleani_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBooleani_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean" len="COMPSIZE(target)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBooleanv</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="Boolean" len="COMPSIZE(pname)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ <glx type="single" opcode="112"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameteri64v</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameteriv</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameterivARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetBufferParameteriv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameterui64vNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferPointerv</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPointerNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferPointervARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPointerNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ <alias name="glGetBufferPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferPointervOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>void **<name>params</name></param>
+ <alias name="glGetBufferPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferSubData</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferSubDataARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
+ <param group="BufferSizeARB"><ptype>GLsizeiptrARB</ptype> <name>size</name></param>
+ <param len="size">void *<name>data</name></param>
+ <alias name="glGetBufferSubData"/>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlane</name></proto>
+ <param group="ClipPlaneName"><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>equation</name></param>
+ <glx type="single" opcode="113"/>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanef</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanefOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>equation</name></param>
+ <glx type="vendor" opcode="1421"/>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanex</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanexOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>table</name></param>
+ <glx type="single" opcode="147"/>
+ <glx type="render" opcode="334" name="glGetColorTablePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>data</name></param>
+ <alias name="glGetColorTable"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterfv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="148"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterfvEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetColorTableParameterfv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterfvSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="4099"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameteriv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="149"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterivEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetColorTableParameteriv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterivSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="4100"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>table</name></param>
+ <glx type="vendor" opcode="4098"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerInputParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1270"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerInputParameterivNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1271"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerOutputParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1272"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerOutputParameterivNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1273"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerStageParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedMultiTexImageEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>lod</name></param>
+ <param len="COMPSIZE(target,lod)">void *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTexImage</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CompressedTextureARB" len="COMPSIZE(target,level)">void *<name>img</name></param>
+ <glx type="single" opcode="160"/>
+ <glx type="render" opcode="335" name="glGetCompressedTexImagePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTexImageARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CompressedTextureARB" len="COMPSIZE(target,level)">void *<name>img</name></param>
+ <alias name="glGetCompressedTexImage"/>
+ <glx type="single" opcode="160"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTextureImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTextureImageEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>lod</name></param>
+ <param len="COMPSIZE(target,lod)">void *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTextureSubImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionFilter</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>image</name></param>
+ <glx type="single" opcode="150"/>
+ <glx type="render" opcode="336" name="glGetConvolutionFilterPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionFilterEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>image</name></param>
+ <glx type="vendor" opcode="1"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterfv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetConvolutionParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="151"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterfvEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="2"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameteriv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetConvolutionParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="152"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterivEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="3"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>sources</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>types</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>messageLog</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLogAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>categories</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="bufsize"><ptype>GLchar</ptype> *<name>message</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLogARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>sources</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>types</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>messageLog</name></param>
+ <alias name="glGetDebugMessageLog"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLogKHR</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>sources</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>types</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>messageLog</name></param>
+ <alias name="glGetDebugMessageLog"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDetailTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="vendor" opcode="4096"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDoubleIndexedvEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLdouble</ptype> *<name>data</name></param>
+ <alias name="glGetDoublei_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDoublei_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLdouble</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetDoublei_vEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetDoublei_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDoublev</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>data</name></param>
+ <glx type="single" opcode="114"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDriverControlStringQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>driverControl</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>driverControlString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetDriverControlsQCOM</name></proto>
+ <param><ptype>GLint</ptype> *<name>num</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLuint</ptype> *<name>driverControls</name></param>
+ </command>
+ <command>
+ <proto group="ErrorCode"><ptype>GLenum</ptype> <name>glGetError</name></proto>
+ <glx type="single" opcode="115"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFenceivNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <param group="FenceParameterNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1280"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFinalCombinerInputParameterfvNV</name></proto>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1274"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFinalCombinerInputParameterivNV</name></proto>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1275"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFirstPerfQueryIdINTEL</name></proto>
+ <param><ptype>GLuint</ptype> *<name>queryId</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFixedv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFixedvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFloatIndexedvEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ <alias name="glGetFloati_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFloati_v</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFloati_vEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetFloati_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFloatv</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ <glx type="single" opcode="116"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFogFuncSGIS</name></proto>
+ <param len="COMPSIZE()"><ptype>GLfloat</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetFragDataIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetFragDataLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetFragDataLocationEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <alias name="glGetFragDataLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentLightfvSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentLightivSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentMaterialfvSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentMaterialivSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferAttachmentParameteriv</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1428"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferAttachmentParameterivEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetFramebufferAttachmentParameteriv"/>
+ <glx type="vendor" opcode="1428"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferAttachmentParameterivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferParameteriv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferParameterivEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="GetFramebufferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatus</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusARB</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusEXT</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusKHR</name></proto>
+ <alias name="glGetGraphicsResetStatus"/>
+ </command>
+ <command>
+ <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glGetHandleARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogram</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>values</name></param>
+ <glx type="single" opcode="154"/>
+ <glx type="render" opcode="337" name="glGetHistogramPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>values</name></param>
+ <glx type="vendor" opcode="5"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterfv</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="155"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterfvEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="6"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameteriv</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="156"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterivEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="7"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetImageHandleARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetImageHandleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetImageTransformParameterfvHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetImageTransformParameterivHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInfoLogARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="maxLength"><ptype>GLcharARB</ptype> *<name>infoLog</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetInstrumentsSGIX</name></proto>
+ <glx type="vendor" opcode="4102"/>
+ </command>
+ <command>
+ <proto>void <name>glGetInteger64i_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLint64</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInteger64v</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInteger64vAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint64</ptype> *<name>params</name></param>
+ <alias name="glGetInteger64v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerIndexedvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLint</ptype> *<name>data</name></param>
+ <alias name="glGetIntegeri_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegeri_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegeri_vEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerui64i_vNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>value</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(value)"><ptype>GLuint64EXT</ptype> *<name>result</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerui64vNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(value)"><ptype>GLuint64EXT</ptype> *<name>result</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerv</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>data</name></param>
+ <glx type="single" opcode="117"/>
+ </command>
+ <command>
+ <proto>void <name>glGetInternalformati64v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInternalformativ</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInvariantBooleanvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param group="Boolean" len="COMPSIZE(id)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInvariantFloatvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInvariantIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightfv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="118"/>
+ </command>
+ <command>
+ <proto>void <name>glGetLightiv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="119"/>
+ </command>
+ <command>
+ <proto>void <name>glGetLightxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetListParameterfvSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetListParameterivSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLocalConstantBooleanvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param group="Boolean" len="COMPSIZE(id)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLocalConstantFloatvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLocalConstantIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapAttribParameterfvNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapAttribParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapAttribParameterivNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapAttribParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapControlPointsNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapTypeNV"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>ustride</name></param>
+ <param><ptype>GLsizei</ptype> <name>vstride</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>packed</name></param>
+ <param len="COMPSIZE(target)">void *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapParameterfvNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(target,pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapParameterivNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(target,pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapdv</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMapQuery"><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(target,query)"><ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="single" opcode="120"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMapfv</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMapQuery"><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(target,query)"><ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="single" opcode="121"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMapiv</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMapQuery"><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(target,query)"><ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="single" opcode="122"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMapxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(query)"><ptype>GLfixed</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialfv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="123"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialiv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="124"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmax</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>values</name></param>
+ <glx type="single" opcode="157"/>
+ <glx type="render" opcode="338" name="glGetMinmaxPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>values</name></param>
+ <glx type="vendor" opcode="8"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameterfv</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="158"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameterfvEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="9"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameteriv</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="159"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameterivEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="10"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexEnvfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexEnvivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexGendvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexGenfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexGenivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexImageEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,level,format,type)">void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexLevelParameterfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexLevelParameterivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterIivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterIuivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultisamplefv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>val</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultisamplefvNV</name></proto>
+ <param group="GetMultisamplePNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2"><ptype>GLfloat</ptype> *<name>val</name></param>
+ <alias name="glGetMultisamplefv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferParameteri64v</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferParameterivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferParameterui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferPointerv</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferPointervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param>void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(size)">void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedFramebufferAttachmentParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedFramebufferAttachmentParameterivEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="FramebufferAttachmentParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedFramebufferParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedFramebufferParameterivEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="GetFramebufferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterIivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterIuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterdvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterfvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramStringEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramStringProperty"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(program,pname)">void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramProperty"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedRenderbufferParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedRenderbufferParameterivEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param group="RenderbufferParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedStringARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>stringlen</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedStringivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNextPerfQueryIdINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>queryId</name></param>
+ <param><ptype>GLuint</ptype> *<name>nextQueryId</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectBufferfvATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectBufferivATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectLabel</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectLabelEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>object</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectLabelKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glGetObjectLabel"/>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectParameterfvARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectParameterivAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>objectType</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectParameterivARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectPtrLabel</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectPtrLabelKHR</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glGetObjectPtrLabel"/>
+ </command>
+ <command>
+ <proto>void <name>glGetOcclusionQueryivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="OcclusionQueryParameterNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetOcclusionQueryuivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="OcclusionQueryParameterNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathColorGenfvNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>color</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathColorGenivNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>color</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathCommandsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathCommand" len="COMPSIZE(path)"><ptype>GLubyte</ptype> *<name>commands</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathCoordsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param len="COMPSIZE(path)"><ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathDashArrayNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param len="COMPSIZE(path)"><ptype>GLfloat</ptype> *<name>dashArray</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLfloat</ptype> <name>glGetPathLengthNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>startSegment</name></param>
+ <param><ptype>GLsizei</ptype> <name>numSegments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathMetricRangeNV</name></proto>
+ <param group="PathMetricMask"><ptype>GLbitfield</ptype> <name>metricQueryMask</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(metricQueryMask,numPaths,stride)"><ptype>GLfloat</ptype> *<name>metrics</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathMetricsNV</name></proto>
+ <param group="PathMetricMask"><ptype>GLbitfield</ptype> <name>metricQueryMask</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(metricQueryMask,numPaths,stride)"><ptype>GLfloat</ptype> *<name>metrics</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathParameterfvNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathParameterivNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathSpacingNV</name></proto>
+ <param group="PathListMode"><ptype>GLenum</ptype> <name>pathListMode</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param><ptype>GLfloat</ptype> <name>advanceScale</name></param>
+ <param><ptype>GLfloat</ptype> <name>kerningScale</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(pathListMode,numPaths)"><ptype>GLfloat</ptype> *<name>returnedSpacing</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathTexGenfvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texCoordSet</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathTexGenivNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texCoordSet</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfCounterInfoINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>queryId</name></param>
+ <param><ptype>GLuint</ptype> <name>counterId</name></param>
+ <param><ptype>GLuint</ptype> <name>counterNameLength</name></param>
+ <param><ptype>GLchar</ptype> *<name>counterName</name></param>
+ <param><ptype>GLuint</ptype> <name>counterDescLength</name></param>
+ <param><ptype>GLchar</ptype> *<name>counterDesc</name></param>
+ <param><ptype>GLuint</ptype> *<name>counterOffset</name></param>
+ <param><ptype>GLuint</ptype> *<name>counterDataSize</name></param>
+ <param><ptype>GLuint</ptype> *<name>counterTypeEnum</name></param>
+ <param><ptype>GLuint</ptype> *<name>counterDataTypeEnum</name></param>
+ <param><ptype>GLuint64</ptype> *<name>rawCounterMaxValue</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCounterDataAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>dataSize</name></param>
+ <param len="dataSize"><ptype>GLuint</ptype> *<name>data</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>bytesWritten</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCounterInfoAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLuint</ptype> <name>counter</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCounterStringAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLuint</ptype> <name>counter</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>counterString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCountersAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>numCounters</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>maxActiveCounters</name></param>
+ <param><ptype>GLsizei</ptype> <name>counterSize</name></param>
+ <param len="counterSize"><ptype>GLuint</ptype> *<name>counters</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorGroupStringAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>groupString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorGroupsAMD</name></proto>
+ <param len="1"><ptype>GLint</ptype> *<name>numGroups</name></param>
+ <param><ptype>GLsizei</ptype> <name>groupsSize</name></param>
+ <param len="groupsSize"><ptype>GLuint</ptype> *<name>groups</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfQueryDataINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>queryHandle</name></param>
+ <param><ptype>GLuint</ptype> <name>flags</name></param>
+ <param><ptype>GLsizei</ptype> <name>dataSize</name></param>
+ <param><ptype>GLvoid</ptype> *<name>data</name></param>
+ <param><ptype>GLuint</ptype> *<name>bytesWritten</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfQueryIdByNameINTEL</name></proto>
+ <param><ptype>GLchar</ptype> *<name>queryName</name></param>
+ <param><ptype>GLuint</ptype> *<name>queryId</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfQueryInfoINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>queryId</name></param>
+ <param><ptype>GLuint</ptype> <name>queryNameLength</name></param>
+ <param><ptype>GLchar</ptype> *<name>queryName</name></param>
+ <param><ptype>GLuint</ptype> *<name>dataSize</name></param>
+ <param><ptype>GLuint</ptype> *<name>noCounters</name></param>
+ <param><ptype>GLuint</ptype> *<name>noInstances</name></param>
+ <param><ptype>GLuint</ptype> *<name>capsMask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapfv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param len="COMPSIZE(map)"><ptype>GLfloat</ptype> *<name>values</name></param>
+ <glx type="single" opcode="125"/>
+ <glx type="render" opcode="339" name="glGetPixelMapfvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapuiv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param len="COMPSIZE(map)"><ptype>GLuint</ptype> *<name>values</name></param>
+ <glx type="single" opcode="126"/>
+ <glx type="render" opcode="340" name="glGetPixelMapuivPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapusv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param len="COMPSIZE(map)"><ptype>GLushort</ptype> *<name>values</name></param>
+ <glx type="single" opcode="127"/>
+ <glx type="render" opcode="341" name="glGetPixelMapusvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLfixed</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTexGenParameterfvSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTexGenParameterivSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTransformParameterfvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="2051"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTransformParameterivEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="2052"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPointerIndexedvEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">void **<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPointeri_vEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPointerv</name></proto>
+ <param group="GetPointervPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ <glx type="single" opcode="208"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPointervEXT</name></proto>
+ <param group="GetPointervPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ <alias name="glGetPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPointervKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>void **<name>params</name></param>
+ <alias name="glGetPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPolygonStipple</name></proto>
+ <param len="COMPSIZE()"><ptype>GLubyte</ptype> *<name>mask</name></param>
+ <glx type="single" opcode="128"/>
+ <glx type="render" opcode="342" name="glGetPolygonStipplePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramBinary</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>binaryFormat</name></param>
+ <param len="bufSize">void *<name>binary</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramBinaryOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>binaryFormat</name></param>
+ <param len="bufSize">void *<name>binary</name></param>
+ <alias name="glGetProgramBinary"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterIivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterIuivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterdvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterfvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramInfoLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ <glx type="single" opcode="201"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramInterfaceiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterIivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterIuivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterdvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterfvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramNamedParameterdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1311"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramNamedParameterfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1310"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramParameterdvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1297"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramParameterfvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1296"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineInfoLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineInfoLogEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetProgramResourceIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetProgramResourceLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetProgramResourceLocationIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramResourceName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramResourcefvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>propCount</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>props</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramResourceiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>propCount</name></param>
+ <param len="propCount">const <ptype>GLenum</ptype> *<name>props</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramStageiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramStringARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramStringPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(target,pname)">void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramStringNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="ProgramCharacterNV" len="COMPSIZE(id,pname)"><ptype>GLubyte</ptype> *<name>program</name></param>
+ <glx type="vendor" opcode="1299"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramSubroutineParameteruivNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLuint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="199"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramivARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1298"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryIndexediv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjecti64v</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjecti64vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1328"/>
+ <alias name="glGetQueryObjecti64v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="165"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryObjectiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryObjectiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectui64v</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectui64vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1329"/>
+ <alias name="glGetQueryObjectui64v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="166"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectuivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryObjectuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="164"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryivARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryivEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetRenderbufferParameteriv</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1424"/>
+ </command>
+ <command>
+ <proto>void <name>glGetRenderbufferParameterivEXT</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetRenderbufferParameteriv"/>
+ <glx type="vendor" opcode="1424"/>
+ </command>
+ <command>
+ <proto>void <name>glGetRenderbufferParameterivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterIivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetSamplerParameterIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterIuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetSamplerParameterIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSeparableFilter</name></proto>
+ <param group="SeparableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>column</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>span</name></param>
+ <glx type="single" opcode="153"/>
+ <glx type="render" opcode="343" name="glGetSeparableFilterPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetSeparableFilterEXT</name></proto>
+ <param group="SeparableTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>column</name></param>
+ <param len="COMPSIZE(target,format,type)">void *<name>span</name></param>
+ <glx type="vendor" opcode="4"/>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderInfoLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ <glx type="single" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderPrecisionFormat</name></proto>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLenum</ptype> <name>precisiontype</name></param>
+ <param len="2"><ptype>GLint</ptype> *<name>range</name></param>
+ <param len="2"><ptype>GLint</ptype> *<name>precision</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderSource</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>source</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderSourceARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="maxLength"><ptype>GLcharARB</ptype> *<name>source</name></param>
+ <alias name="glGetShaderSource"/>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="198"/>
+ </command>
+ <command>
+ <proto>void <name>glGetSharpenTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="vendor" opcode="4097"/>
+ </command>
+ <command>
+ <proto group="String">const <ptype>GLubyte</ptype> *<name>glGetString</name></proto>
+ <param group="StringName"><ptype>GLenum</ptype> <name>name</name></param>
+ <glx type="single" opcode="129"/>
+ </command>
+ <command>
+ <proto group="String">const <ptype>GLubyte</ptype> *<name>glGetStringi</name></proto>
+ <param><ptype>GLenum</ptype> <name>name</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetSubroutineIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetSubroutineUniformLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSynciv</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSyncivAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>values</name></param>
+ <alias name="glGetSynciv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexBumpParameterfvATI</name></proto>
+ <param group="GetTexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexBumpParameterivATI</name></proto>
+ <param group="GetTexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnvfv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="130"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnviv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="131"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnvxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnvxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexFilterFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureFilterSGIS"><ptype>GLenum</ptype> <name>filter</name></param>
+ <param len="COMPSIZE(target,filter)"><ptype>GLfloat</ptype> *<name>weights</name></param>
+ <glx type="vendor" opcode="4101"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGendv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="single" opcode="132"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenfv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="133"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenfvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGeniv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="134"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexImage</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,level,format,type)">void *<name>pixels</name></param>
+ <glx type="single" opcode="135"/>
+ <glx type="render" opcode="344" name="glGetTexImagePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexLevelParameterfv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="138"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexLevelParameteriv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="139"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexLevelParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="203"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetTexParameterIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIuiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="204"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIuivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetTexParameterIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterPointervAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterfv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="136"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameteriv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="137"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureHandleARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureHandleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureImageEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,level,format,type)">void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureLevelParameterfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureLevelParameterfvEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureLevelParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureLevelParameterivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterIivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterIuivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterfvEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureSamplerHandleARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureSamplerHandleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureSubImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTrackMatrixivNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>address</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1300"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackVarying</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackVaryingEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ <alias name="glGetTransformFeedbackVarying"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackVaryingNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>location</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbacki64_v</name></proto>
+ <param><ptype>GLuint</ptype> <name>xfb</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbacki_v</name></proto>
+ <param><ptype>GLuint</ptype> <name>xfb</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>xfb</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTranslatedShaderSourceANGLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLchar</ptype> *<name>source</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetUniformBlockIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE()">const <ptype>GLchar</ptype> *<name>uniformBlockName</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetUniformBufferSizeEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformIndices</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>uniformCount</name></param>
+ <param len="COMPSIZE(uniformCount)">const <ptype>GLchar</ptype> *const*<name>uniformNames</name></param>
+ <param len="COMPSIZE(uniformCount)"><ptype>GLuint</ptype> *<name>uniformIndices</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetUniformLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetUniformLocationARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param>const <ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetUniformLocation"/>
+ </command>
+ <command>
+ <proto group="BufferOffset"><ptype>GLintptr</ptype> <name>glGetUniformOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformSubroutineuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="1"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program, location)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program, location)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformfvARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program, location)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetUniformfv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformi64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program, location)"><ptype>GLint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program, location)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformivARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program, location)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetUniformiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program,location)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program,location)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program,location)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetUniformuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantArrayObjectfvATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantArrayObjectivATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantBooleanvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param group="Boolean" len="COMPSIZE(id)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantFloatvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantPointervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)">void **<name>data</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetVaryingLocationNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayIndexed64iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint64</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayIndexediv</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayIntegeri_vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayPointeri_vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>void **<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayPointervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribArrayObjectfvATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribArrayObjectivATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLdvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribLdv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLi64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLui64vARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribPointerv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPointerPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>pointer</name></param>
+ <glx type="single" opcode="209"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribPointervARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPointerPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>pointer</name></param>
+ <alias name="glGetVertexAttribPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribPointervNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">void **<name>pointer</name></param>
+ <alias name="glGetVertexAttribPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1301"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribdvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribdv"/>
+ <glx type="vendor" opcode="1301"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribdv"/>
+ <glx type="vendor" opcode="1301"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1302"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribfvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribfv"/>
+ <glx type="vendor" opcode="1302"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribfv"/>
+ <glx type="vendor" opcode="1302"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1303"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribiv"/>
+ <glx type="vendor" opcode="1303"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribiv"/>
+ <glx type="vendor" opcode="1303"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureStreamdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureStreamfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureStreamivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoi64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideouivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnColorTable</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>table</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnColorTableARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>table</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnCompressedTexImage</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>lod</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnCompressedTexImageARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>lod</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnConvolutionFilter</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnConvolutionFilterARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnHistogram</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnHistogramARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapdv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapdvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapfv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapfvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapivARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMinmax</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMinmaxARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapfv</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLfloat</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapfvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLuint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapuivARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLuint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapusv</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLushort</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapusvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLushort</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPolygonStipple</name></proto>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLubyte</ptype> *<name>pattern</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPolygonStippleARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLubyte</ptype> *<name>pattern</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnSeparableFilter</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>rowBufSize</name></param>
+ <param>void *<name>row</name></param>
+ <param><ptype>GLsizei</ptype> <name>columnBufSize</name></param>
+ <param>void *<name>column</name></param>
+ <param>void *<name>span</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnSeparableFilterARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>rowBufSize</name></param>
+ <param len="rowBufSize">void *<name>row</name></param>
+ <param><ptype>GLsizei</ptype> <name>columnBufSize</name></param>
+ <param len="columnBufSize">void *<name>column</name></param>
+ <param len="0">void *<name>span</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnTexImage</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnTexImageARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformdvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformfvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformfvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformfvKHR</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetnUniformfv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformivKHR</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetnUniformiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformuivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformuivKHR</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetnUniformuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorbSUN</name></proto>
+ <param><ptype>GLbyte</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactordSUN</name></proto>
+ <param><ptype>GLdouble</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorfSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactoriSUN</name></proto>
+ <param><ptype>GLint</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorsSUN</name></proto>
+ <param><ptype>GLshort</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorubSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactoruiSUN</name></proto>
+ <param><ptype>GLuint</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorusSUN</name></proto>
+ <param><ptype>GLushort</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glHint</name></proto>
+ <param group="HintTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="HintMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="85"/>
+ </command>
+ <command>
+ <proto>void <name>glHintPGI</name></proto>
+ <param group="HintTargetPGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glHistogram</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <glx type="render" opcode="4110"/>
+ </command>
+ <command>
+ <proto>void <name>glHistogramEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <alias name="glHistogram"/>
+ <glx type="render" opcode="4110"/>
+ </command>
+ <command>
+ <proto>void <name>glIglooInterfaceSGIX</name></proto>
+ <param group="IglooFunctionSelectSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="IglooParameterSGIX" len="COMPSIZE(pname)">const void *<name>params</name></param>
+ <glx type="render" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameterfHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameterfvHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameteriHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameterivHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto group="sync"><ptype>GLsync</ptype> <name>glImportSyncEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>external_sync_type</name></param>
+ <param><ptype>GLintptr</ptype> <name>external_sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexFormatNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexFuncEXT</name></proto>
+ <param group="IndexFunctionEXT"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexMask</name></proto>
+ <param group="MaskedColorIndexValueI"><ptype>GLuint</ptype> <name>mask</name></param>
+ <glx type="render" opcode="136"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexMaterialEXT</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="IndexMaterialParameterEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexPointer</name></proto>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexPointerEXT</name></proto>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexPointerListIBM</name></proto>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexd</name></proto>
+ <param group="ColorIndexValueD"><ptype>GLdouble</ptype> <name>c</name></param>
+ <vecequiv name="glIndexdv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexdv</name></proto>
+ <param group="ColorIndexValueD" len="1">const <ptype>GLdouble</ptype> *<name>c</name></param>
+ <glx type="render" opcode="24"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexf</name></proto>
+ <param group="ColorIndexValueF"><ptype>GLfloat</ptype> <name>c</name></param>
+ <vecequiv name="glIndexfv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexfv</name></proto>
+ <param group="ColorIndexValueF" len="1">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <glx type="render" opcode="25"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexi</name></proto>
+ <param group="ColorIndexValueI"><ptype>GLint</ptype> <name>c</name></param>
+ <vecequiv name="glIndexiv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexiv</name></proto>
+ <param group="ColorIndexValueI" len="1">const <ptype>GLint</ptype> *<name>c</name></param>
+ <glx type="render" opcode="26"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexs</name></proto>
+ <param group="ColorIndexValueS"><ptype>GLshort</ptype> <name>c</name></param>
+ <vecequiv name="glIndexsv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexsv</name></proto>
+ <param group="ColorIndexValueS" len="1">const <ptype>GLshort</ptype> *<name>c</name></param>
+ <glx type="render" opcode="27"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexub</name></proto>
+ <param group="ColorIndexValueUB"><ptype>GLubyte</ptype> <name>c</name></param>
+ <vecequiv name="glIndexubv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexubv</name></proto>
+ <param group="ColorIndexValueUB" len="1">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <glx type="render" opcode="194"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>component</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexxvOES</name></proto>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>component</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInitNames</name></proto>
+ <glx type="render" opcode="121"/>
+ </command>
+ <command>
+ <proto>void <name>glInsertComponentEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>src</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInsertEventMarkerEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>marker</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInstrumentsBufferSGIX</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLint</ptype> *<name>buffer</name></param>
+ <glx type="vendor" opcode="4103"/>
+ </command>
+ <command>
+ <proto>void <name>glInterleavedArrays</name></proto>
+ <param group="InterleavedArrayFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(format,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInterpolatePathsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathA</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathB</name></param>
+ <param><ptype>GLfloat</ptype> <name>weight</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateBufferData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateBufferSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateFramebuffer</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param len="numAttachments">const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateNamedFramebufferData</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateNamedFramebufferSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateSubFramebuffer</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param len="numAttachments">const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateTexImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateTexSubImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsAsyncMarkerSGIX</name></proto>
+ <param><ptype>GLuint</ptype> <name>marker</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsBufferARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glIsBuffer"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsBufferResidentNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnabled</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>cap</name></param>
+ <glx type="single" opcode="140"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnabledIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glIsEnabledi"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnabledi</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnablediEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glIsEnabledi"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <glx type="vendor" opcode="1278"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFramebuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <glx type="vendor" opcode="1425"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFramebufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <alias name="glIsFramebuffer"/>
+ <glx type="vendor" opcode="1425"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsFramebufferOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsImageHandleResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsImageHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsList</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <glx type="single" opcode="141"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNameAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNamedBufferResidentNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNamedStringARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsOcclusionQueryNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsPointInFillPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsPointInStrokePathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="single" opcode="197"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgramARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="vendor" opcode="1304"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgramNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glIsProgramARB"/>
+ <glx type="vendor" opcode="1304"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgramPipeline</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsProgramPipelineEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsQuery</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <glx type="single" opcode="163"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsQueryARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glIsQuery"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsQueryEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsRenderbuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="vendor" opcode="1422"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsRenderbufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <alias name="glIsRenderbuffer"/>
+ <glx type="vendor" opcode="1422"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsRenderbufferOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsSampler</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <glx type="single" opcode="196"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <alias name="glIsSync"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTexture</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <glx type="single" opcode="146"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTextureEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <glx type="vendor" opcode="14"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsTextureHandleResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTextureHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTransformFeedback</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTransformFeedbackNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glIsTransformFeedback"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVariantEnabledEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="VariantCapEXT"><ptype>GLenum</ptype> <name>cap</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <glx type="single" opcode="207"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexArrayAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <alias name="glIsVertexArray"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsVertexArrayOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <alias name="glIsVertexArray"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexAttribEnabledAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLabelObjectEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>object</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightEnviSGIX</name></proto>
+ <param group="LightEnvParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelf</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="90"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModelfv</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="91"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModeli</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="92"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModeliv</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="93"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModelx</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightf</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="86"/>
+ </command>
+ <command>
+ <proto>void <name>glLightfv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="87"/>
+ </command>
+ <command>
+ <proto>void <name>glLighti</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="88"/>
+ </command>
+ <command>
+ <proto>void <name>glLightiv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="89"/>
+ </command>
+ <command>
+ <proto>void <name>glLightx</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLineStipple</name></proto>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>factor</name></param>
+ <param group="LineStipple"><ptype>GLushort</ptype> <name>pattern</name></param>
+ <glx type="render" opcode="94"/>
+ </command>
+ <command>
+ <proto>void <name>glLineWidth</name></proto>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>width</name></param>
+ <glx type="render" opcode="95"/>
+ </command>
+ <command>
+ <proto>void <name>glLineWidthx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLineWidthxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLinkProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLinkProgramARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <alias name="glLinkProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glListBase</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>base</name></param>
+ <glx type="render" opcode="3"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameterfSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="2078"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameterfvSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2079"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameteriSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="2080"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameterivSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2081"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadIdentity</name></proto>
+ <glx type="render" opcode="176"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadIdentityDeformationMapSGIX</name></proto>
+ <param group="FfdMaskSGIX"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="2076"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <glx type="render" opcode="178"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <glx type="render" opcode="177"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixx</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadName</name></proto>
+ <param group="SelectName"><ptype>GLuint</ptype> <name>name</name></param>
+ <glx type="render" opcode="122"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadPaletteFromModelViewMatrixOES</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glLoadProgramNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const <ptype>GLubyte</ptype> *<name>program</name></param>
+ <glx type="render" opcode="4183"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixdARB</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <alias name="glLoadTransposeMatrixd"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixfARB</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <alias name="glLoadTransposeMatrixf"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLockArraysEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLogicOp</name></proto>
+ <param group="LogicOp"><ptype>GLenum</ptype> <name>opcode</name></param>
+ <glx type="render" opcode="161"/>
+ </command>
+ <command>
+ <proto>void <name>glMakeBufferNonResidentNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeBufferResidentNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleNonResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleNonResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeNamedBufferNonResidentNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeNamedBufferResidentNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleNonResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleNonResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleResidentARB</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMap1d</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordD" len="COMPSIZE(target,stride,order)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ <glx type="render" opcode="143"/>
+ </command>
+ <command>
+ <proto>void <name>glMap1f</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordF" len="COMPSIZE(target,stride,order)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="144"/>
+ </command>
+ <command>
+ <proto>void <name>glMap1xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param><ptype>GLint</ptype> <name>order</name></param>
+ <param><ptype>GLfixed</ptype> <name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMap2d</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordD" len="COMPSIZE(target,ustride,uorder,vstride,vorder)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ <glx type="render" opcode="145"/>
+ </command>
+ <command>
+ <proto>void <name>glMap2f</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordF" len="COMPSIZE(target,ustride,uorder,vstride,vorder)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="146"/>
+ </command>
+ <command>
+ <proto>void <name>glMap2xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param><ptype>GLint</ptype> <name>uorder</name></param>
+ <param><ptype>GLfixed</ptype> <name>v1</name></param>
+ <param><ptype>GLfixed</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param><ptype>GLint</ptype> <name>vorder</name></param>
+ <param><ptype>GLfixed</ptype> <name>points</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapBuffer</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferAccessARB"><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferAccessARB"><ptype>GLenum</ptype> <name>access</name></param>
+ <alias name="glMapBuffer"/>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ <alias name="glMapBuffer"/>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferRange</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ <glx type="single" opcode="205"/>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <param><ptype>GLbitfield</ptype> <name>access</name></param>
+ <alias name="glMapBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glMapControlPointsNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapTypeNV"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>ustride</name></param>
+ <param><ptype>GLsizei</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>packed</name></param>
+ <param len="COMPSIZE(target,uorder,vorder)">const void *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid1d</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <glx type="render" opcode="147"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid1f</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <glx type="render" opcode="148"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid1xOES</name></proto>
+ <param><ptype>GLint</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid2d</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>vn</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <glx type="render" opcode="149"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid2f</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>vn</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <glx type="render" opcode="150"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid2xOES</name></proto>
+ <param><ptype>GLint</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ <param><ptype>GLfixed</ptype> <name>v1</name></param>
+ <param><ptype>GLfixed</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapNamedBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapNamedBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectAccess"><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapNamedBufferRange</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param><ptype>GLbitfield</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapNamedBufferRangeEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapParameterfvNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(target,pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapParameterivNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(target,pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapTexture2DINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLbitfield</ptype> <name>access</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>stride</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>layout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib1dAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordD" len="COMPSIZE(size,stride,order)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib1fAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordF" len="COMPSIZE(size,stride,order)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib2dAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordD" len="COMPSIZE(size,ustride,uorder,vstride,vorder)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib2fAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordF" len="COMPSIZE(size,ustride,uorder,vstride,vorder)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialf</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="96"/>
+ </command>
+ <command>
+ <proto>void <name>glMaterialfv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="97"/>
+ </command>
+ <command>
+ <proto>void <name>glMateriali</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="98"/>
+ </command>
+ <command>
+ <proto>void <name>glMaterialiv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="99"/>
+ </command>
+ <command>
+ <proto>void <name>glMaterialx</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixFrustumEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexPointerARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="MatrixIndexPointerTypeARB"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexPointerOES</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexubvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLubyte</ptype> *<name>indices</name></param>
+ <glx type="render" opcode="4326"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexuivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLuint</ptype> *<name>indices</name></param>
+ <glx type="render" opcode="4328"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexusvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLushort</ptype> *<name>indices</name></param>
+ <glx type="render" opcode="4327"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoad3x2fNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>matrixMode</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoad3x3fNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>matrixMode</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadIdentityEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadTranspose3x3fNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>matrixMode</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadTransposedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadTransposefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoaddEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadfEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMode</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="179"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMult3x2fNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>matrixMode</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMult3x3fNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>matrixMode</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultTranspose3x3fNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>matrixMode</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultTransposedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultTransposefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultdEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultfEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixOrthoEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixPopEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixPushEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixRotatedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>angle</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixRotatefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLfloat</ptype> <name>angle</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixScaledEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixScalefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixTranslatedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixTranslatefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMemoryBarrier</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>barriers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMemoryBarrierByRegion</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>barriers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMemoryBarrierEXT</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>barriers</name></param>
+ <alias name="glMemoryBarrier"/>
+ </command>
+ <command>
+ <proto>void <name>glMinSampleShading</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMinSampleShadingARB</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>value</name></param>
+ <alias name="glMinSampleShading"/>
+ </command>
+ <command>
+ <proto>void <name>glMinSampleShadingOES</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>value</name></param>
+ <alias name="glMinSampleShading"/>
+ </command>
+ <command>
+ <proto>void <name>glMinmax</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <glx type="render" opcode="4111"/>
+ </command>
+ <command>
+ <proto>void <name>glMinmaxEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <alias name="glMinmax"/>
+ <glx type="render" opcode="4111"/>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <glx type="render" opcode="181"/>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <glx type="render" opcode="180"/>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixx</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixdARB</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <alias name="glMultTransposeMatrixd"/>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixfARB</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <alias name="glMultTransposeMatrixf"/>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArrays</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glMultiDrawArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirect</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirectAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <alias name="glMultiDrawArraysIndirect"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirectBindlessCountNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxDrawCount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirectBindlessNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirectCountARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLintptr</ptype> <name>indirect</name></param>
+ <param><ptype>GLintptr</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxdrawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="primcount">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="primcount">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElements</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(drawcount)">const void *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsBaseVertex</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(drawcount)">const void *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLint</ptype> *<name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(primcount)">const void *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glMultiDrawElements"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirect</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirectAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <alias name="glMultiDrawElementsIndirect"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirectBindlessCountNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxDrawCount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirectBindlessNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawCount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLint</ptype> <name>vertexBufferCount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirectCountARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLintptr</ptype> <name>indirect</name></param>
+ <param><ptype>GLintptr</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxdrawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawRangeElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param len="primcount">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="primcount">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiModeDrawArraysIBM</name></proto>
+ <param group="PrimitiveType" len="COMPSIZE(primcount)">const <ptype>GLenum</ptype> *<name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLint</ptype> <name>modestride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiModeDrawElementsIBM</name></proto>
+ <param group="PrimitiveType" len="COMPSIZE(primcount)">const <ptype>GLenum</ptype> *<name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(primcount)">const void *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLint</ptype> <name>modestride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexBufferEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="1">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1dv"/>
+ <alias name="glMultiTexCoord1d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="198"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1dv"/>
+ <glx type="render" opcode="198"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1fv"/>
+ <alias name="glMultiTexCoord1f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="199"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1fv"/>
+ <glx type="render" opcode="199"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4250"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1iv"/>
+ <alias name="glMultiTexCoord1i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1iv"/>
+ <glx type="render" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1sv"/>
+ <alias name="glMultiTexCoord1s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="201"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1sv"/>
+ <glx type="render" opcode="201"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="2">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2dv"/>
+ <alias name="glMultiTexCoord2d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="202"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2dv"/>
+ <glx type="render" opcode="202"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2fv"/>
+ <alias name="glMultiTexCoord2f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="203"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2fv"/>
+ <glx type="render" opcode="203"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4251"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2iv"/>
+ <alias name="glMultiTexCoord2i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="204"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2iv"/>
+ <glx type="render" opcode="204"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2sv"/>
+ <alias name="glMultiTexCoord2s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="205"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2sv"/>
+ <glx type="render" opcode="205"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3dv"/>
+ <alias name="glMultiTexCoord3d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="206"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3dv"/>
+ <glx type="render" opcode="206"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3fv"/>
+ <alias name="glMultiTexCoord3f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="207"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3fv"/>
+ <glx type="render" opcode="207"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4252"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3iv"/>
+ <alias name="glMultiTexCoord3i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="208"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3iv"/>
+ <glx type="render" opcode="208"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3sv"/>
+ <alias name="glMultiTexCoord3s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="209"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3sv"/>
+ <glx type="render" opcode="209"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ <param><ptype>GLbyte</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4dv"/>
+ <alias name="glMultiTexCoord4d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="210"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4dv"/>
+ <glx type="render" opcode="210"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4fv"/>
+ <alias name="glMultiTexCoord4f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="211"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4fv"/>
+ <glx type="render" opcode="211"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4253"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4iv"/>
+ <alias name="glMultiTexCoord4i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="212"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4iv"/>
+ <glx type="render" opcode="212"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4sv"/>
+ <alias name="glMultiTexCoord4s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="213"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4sv"/>
+ <glx type="render" opcode="213"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4x</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP1ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP1uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP2ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP2uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordPointerEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnvfEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexEnvfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnvfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnviEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexEnvivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnvivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGendEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLdouble</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexGendvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGendvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGenfEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexGenfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGenfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGeniEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexGenivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGenivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterIivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterIuivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterfEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexParameterfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameteriEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexParameterivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexRenderbufferEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexSubImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexSubImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexSubImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param>const void *<name>data</name></param>
+ <param><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(size)">const void *<name>data</name></param>
+ <param group="VertexBufferObjectUsage"><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferPageCommitmentARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param><ptype>GLboolean</ptype> <name>commit</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferPageCommitmentEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param><ptype>GLboolean</ptype> <name>commit</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferStorage</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param>const void *<name>data</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferStorageEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">const void *<name>data</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param>const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(size)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedCopyBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>readBuffer</name></param>
+ <param><ptype>GLuint</ptype> <name>writeBuffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>readOffset</name></param>
+ <param><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferDrawBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>buf</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferDrawBuffers</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferParameteri</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferParameteriEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferReadBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferRenderbuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferRenderbufferEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture1DEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture2DEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture3DEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureFaceEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>face</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureLayer</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureLayerEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameter4dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameter4fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameterI4ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameterI4uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameters4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParametersI4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParametersI4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramStringEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorage</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageMultisample</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageMultisampleCoverageEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageMultisampleEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedStringARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <param><ptype>GLint</ptype> <name>stringlen</name></param>
+ <param len="stringlen">const <ptype>GLchar</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNewList</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="single" opcode="101"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glNewObjectBufferATI</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size">const void *<name>pointer</name></param>
+ <param group="ArrayObjectUsageATI"><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3b</name></proto>
+ <param><ptype>GLbyte</ptype> <name>nx</name></param>
+ <param><ptype>GLbyte</ptype> <name>ny</name></param>
+ <param><ptype>GLbyte</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3bv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3bv</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="28"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>nx</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>ny</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="29"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3fVertex3fvSUN</name></proto>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="30"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>nx</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>ny</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4243"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3i</name></proto>
+ <param><ptype>GLint</ptype> <name>nx</name></param>
+ <param><ptype>GLint</ptype> <name>ny</name></param>
+ <param><ptype>GLint</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3iv</name></proto>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="31"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3s</name></proto>
+ <param><ptype>GLshort</ptype> <name>nx</name></param>
+ <param><ptype>GLshort</ptype> <name>ny</name></param>
+ <param><ptype>GLshort</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3sv</name></proto>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="32"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3x</name></proto>
+ <param><ptype>GLfixed</ptype> <name>nx</name></param>
+ <param><ptype>GLfixed</ptype> <name>ny</name></param>
+ <param><ptype>GLfixed</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>nx</name></param>
+ <param><ptype>GLfixed</ptype> <name>ny</name></param>
+ <param><ptype>GLfixed</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalFormatNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointer</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointerEXT</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointerListIBM</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointervINTEL</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3bATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLbyte</ptype> <name>nx</name></param>
+ <param><ptype>GLbyte</ptype> <name>ny</name></param>
+ <param><ptype>GLbyte</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3bvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>nx</name></param>
+ <param><ptype>GLdouble</ptype> <name>ny</name></param>
+ <param><ptype>GLdouble</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>nx</name></param>
+ <param><ptype>GLint</ptype> <name>ny</name></param>
+ <param><ptype>GLint</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>nx</name></param>
+ <param><ptype>GLshort</ptype> <name>ny</name></param>
+ <param><ptype>GLshort</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glObjectLabel</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(label,length)">const <ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glObjectLabelKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glObjectLabel"/>
+ </command>
+ <command>
+ <proto>void <name>glObjectPtrLabel</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(label,length)">const <ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glObjectPtrLabelKHR</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glObjectPtrLabel"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glObjectPurgeableAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>objectType</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>option</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glObjectUnpurgeableAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>objectType</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>option</name></param>
+ </command>
+ <command>
+ <proto>void <name>glOrtho</name></proto>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ <glx type="render" opcode="182"/>
+ </command>
+ <command>
+ <proto>void <name>glOrthof</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glOrthofOES</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ <glx type="render" opcode="4311"/>
+ </command>
+ <command>
+ <proto>void <name>glOrthox</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glOrthoxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPNTrianglesfATI</name></proto>
+ <param group="PNTrianglesPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPNTrianglesiATI</name></proto>
+ <param group="PNTrianglesPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPassTexCoordATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>coord</name></param>
+ <param group="SwizzleOpATI"><ptype>GLenum</ptype> <name>swizzle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPassThrough</name></proto>
+ <param group="FeedbackElement"><ptype>GLfloat</ptype> <name>token</name></param>
+ <glx type="render" opcode="123"/>
+ </command>
+ <command>
+ <proto>void <name>glPassThroughxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>token</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPatchParameterfv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPatchParameteri</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPatchParameteriEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ <alias name="glPatchParameteri"/>
+ </command>
+ <command>
+ <proto>void <name>glPathColorGenNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>color</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>genMode</name></param>
+ <param group="PathColorFormat"><ptype>GLenum</ptype> <name>colorFormat</name></param>
+ <param len="COMPSIZE(genMode,colorFormat)">const <ptype>GLfloat</ptype> *<name>coeffs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathCommandsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCommands</name></param>
+ <param group="PathCommand" len="numCommands">const <ptype>GLubyte</ptype> *<name>commands</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const void *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathCoordsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const void *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathCoverDepthFuncNV</name></proto>
+ <param group="DepthFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathDashArrayNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>dashCount</name></param>
+ <param len="dashCount">const <ptype>GLfloat</ptype> *<name>dashArray</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathFogGenNV</name></proto>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>genMode</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glPathGlyphIndexArrayNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param><ptype>GLenum</ptype> <name>fontTarget</name></param>
+ <param>const void *<name>fontName</name></param>
+ <param><ptype>GLbitfield</ptype> <name>fontStyle</name></param>
+ <param><ptype>GLuint</ptype> <name>firstGlyphIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>numGlyphs</name></param>
+ <param><ptype>GLuint</ptype> <name>pathParameterTemplate</name></param>
+ <param><ptype>GLfloat</ptype> <name>emScale</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glPathGlyphIndexRangeNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>fontTarget</name></param>
+ <param>const void *<name>fontName</name></param>
+ <param><ptype>GLbitfield</ptype> <name>fontStyle</name></param>
+ <param><ptype>GLuint</ptype> <name>pathParameterTemplate</name></param>
+ <param><ptype>GLfloat</ptype> <name>emScale</name></param>
+ <param><ptype>GLuint</ptype> <name>baseAndCount</name>[2]</param>
+ </command>
+ <command>
+ <proto>void <name>glPathGlyphRangeNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param group="PathFontTarget"><ptype>GLenum</ptype> <name>fontTarget</name></param>
+ <param len="COMPSIZE(fontTarget,fontName)">const void *<name>fontName</name></param>
+ <param group="PathFontStyle"><ptype>GLbitfield</ptype> <name>fontStyle</name></param>
+ <param><ptype>GLuint</ptype> <name>firstGlyph</name></param>
+ <param><ptype>GLsizei</ptype> <name>numGlyphs</name></param>
+ <param group="PathHandleMissingGlyphs"><ptype>GLenum</ptype> <name>handleMissingGlyphs</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathParameterTemplate</name></param>
+ <param><ptype>GLfloat</ptype> <name>emScale</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathGlyphsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param group="PathFontTarget"><ptype>GLenum</ptype> <name>fontTarget</name></param>
+ <param len="COMPSIZE(fontTarget,fontName)">const void *<name>fontName</name></param>
+ <param group="PathFontStyle"><ptype>GLbitfield</ptype> <name>fontStyle</name></param>
+ <param><ptype>GLsizei</ptype> <name>numGlyphs</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(numGlyphs,type,charcodes)">const void *<name>charcodes</name></param>
+ <param group="PathHandleMissingGlyphs"><ptype>GLenum</ptype> <name>handleMissingGlyphs</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathParameterTemplate</name></param>
+ <param><ptype>GLfloat</ptype> <name>emScale</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glPathMemoryGlyphIndexArrayNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param><ptype>GLenum</ptype> <name>fontTarget</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>fontSize</name></param>
+ <param>const void *<name>fontData</name></param>
+ <param><ptype>GLsizei</ptype> <name>faceIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>firstGlyphIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>numGlyphs</name></param>
+ <param><ptype>GLuint</ptype> <name>pathParameterTemplate</name></param>
+ <param><ptype>GLfloat</ptype> <name>emScale</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameterfNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameterfvNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameteriNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameterivNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathStencilDepthOffsetNV</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ <param><ptype>GLfloat</ptype> <name>units</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathStencilFuncNV</name></proto>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="ClampedStencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathStringNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathStringFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const void *<name>pathString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathSubCommandsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>commandStart</name></param>
+ <param><ptype>GLsizei</ptype> <name>commandsToDelete</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCommands</name></param>
+ <param group="PathCommand" len="numCommands">const <ptype>GLubyte</ptype> *<name>commands</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const void *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathSubCoordsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>coordStart</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const void *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathTexGenNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>texCoordSet</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>genMode</name></param>
+ <param><ptype>GLint</ptype> <name>components</name></param>
+ <param len="COMPSIZE(genMode,components)">const <ptype>GLfloat</ptype> *<name>coeffs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPauseTransformFeedback</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPauseTransformFeedbackNV</name></proto>
+ <alias name="glPauseTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelDataRangeNV</name></proto>
+ <param group="PixelDataRangeTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapfv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param group="CheckedInt32"><ptype>GLsizei</ptype> <name>mapsize</name></param>
+ <param len="mapsize">const <ptype>GLfloat</ptype> *<name>values</name></param>
+ <glx type="render" opcode="168"/>
+ <glx type="render" opcode="323" name="glPixelMapfvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapuiv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param group="CheckedInt32"><ptype>GLsizei</ptype> <name>mapsize</name></param>
+ <param len="mapsize">const <ptype>GLuint</ptype> *<name>values</name></param>
+ <glx type="render" opcode="169"/>
+ <glx type="render" opcode="324" name="glPixelMapuivPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapusv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param group="CheckedInt32"><ptype>GLsizei</ptype> <name>mapsize</name></param>
+ <param len="mapsize">const <ptype>GLushort</ptype> *<name>values</name></param>
+ <glx type="render" opcode="170"/>
+ <glx type="render" opcode="325" name="glPixelMapusvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapx</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLfixed</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelStoref</name></proto>
+ <param group="PixelStoreParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="single" opcode="109"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelStorei</name></proto>
+ <param group="PixelStoreParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="single" opcode="110"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelStorex</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameterfSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameterfvSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameteriSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameterivSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenSGIX</name></proto>
+ <param group="PixelTexGenModeSGIX"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="2059"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransferf</name></proto>
+ <param group="PixelTransferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="166"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransferi</name></proto>
+ <param group="PixelTransferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="167"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransferxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameterfEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="16385"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameterfvEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameteriEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="16386"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameterivEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelZoom</name></proto>
+ <param><ptype>GLfloat</ptype> <name>xfactor</name></param>
+ <param><ptype>GLfloat</ptype> <name>yfactor</name></param>
+ <glx type="render" opcode="165"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelZoomxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>xfactor</name></param>
+ <param><ptype>GLfixed</ptype> <name>yfactor</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glPointAlongPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>startSegment</name></param>
+ <param><ptype>GLsizei</ptype> <name>numSegments</name></param>
+ <param><ptype>GLfloat</ptype> <name>distance</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>x</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>y</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>tangentX</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>tangentY</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterf</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="2065"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfARB</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <alias name="glPointParameterf"/>
+ <glx type="render" opcode="2065"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfEXT</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <alias name="glPointParameterf"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfSGIS</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <alias name="glPointParameterf"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfv</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2066"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfvARB</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glPointParameterfv"/>
+ <glx type="render" opcode="2066"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfvEXT</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glPointParameterfv"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfvSGIS</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glPointParameterfv"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameteri</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="4221"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameteriNV</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <alias name="glPointParameteri"/>
+ <glx type="render" opcode="4221"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameteriv</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4222"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterivNV</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glPointParameteriv"/>
+ <glx type="render" opcode="4222"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterx</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointSize</name></proto>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>size</name></param>
+ <glx type="render" opcode="100"/>
+ </command>
+ <command>
+ <proto>void <name>glPointSizePointerOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointSizex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointSizexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glPollAsyncSGIX</name></proto>
+ <param len="1"><ptype>GLuint</ptype> *<name>markerp</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glPollInstrumentsSGIX</name></proto>
+ <param len="1"><ptype>GLint</ptype> *<name>marker_p</name></param>
+ <glx type="vendor" opcode="4104"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonMode</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="PolygonMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="101"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffset</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ <param><ptype>GLfloat</ptype> <name>units</name></param>
+ <glx type="render" opcode="192"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffsetEXT</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ <param><ptype>GLfloat</ptype> <name>bias</name></param>
+ <glx type="render" opcode="4098"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffsetx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>factor</name></param>
+ <param><ptype>GLfixed</ptype> <name>units</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffsetxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>factor</name></param>
+ <param><ptype>GLfixed</ptype> <name>units</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPolygonStipple</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLubyte</ptype> *<name>mask</name></param>
+ <glx type="render" opcode="102"/>
+ <glx type="render" opcode="326" name="glPolygonStipplePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPopAttrib</name></proto>
+ <glx type="render" opcode="141"/>
+ </command>
+ <command>
+ <proto>void <name>glPopClientAttrib</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPopDebugGroup</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPopDebugGroupKHR</name></proto>
+ <alias name="glPopDebugGroup"/>
+ </command>
+ <command>
+ <proto>void <name>glPopGroupMarkerEXT</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPopMatrix</name></proto>
+ <glx type="render" opcode="183"/>
+ </command>
+ <command>
+ <proto>void <name>glPopName</name></proto>
+ <glx type="render" opcode="124"/>
+ </command>
+ <command>
+ <proto>void <name>glPresentFrameDualFillNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>minPresentTime</name></param>
+ <param><ptype>GLuint</ptype> <name>beginPresentTimeId</name></param>
+ <param><ptype>GLuint</ptype> <name>presentDurationId</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>target0</name></param>
+ <param><ptype>GLuint</ptype> <name>fill0</name></param>
+ <param><ptype>GLenum</ptype> <name>target1</name></param>
+ <param><ptype>GLuint</ptype> <name>fill1</name></param>
+ <param><ptype>GLenum</ptype> <name>target2</name></param>
+ <param><ptype>GLuint</ptype> <name>fill2</name></param>
+ <param><ptype>GLenum</ptype> <name>target3</name></param>
+ <param><ptype>GLuint</ptype> <name>fill3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPresentFrameKeyedNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>minPresentTime</name></param>
+ <param><ptype>GLuint</ptype> <name>beginPresentTimeId</name></param>
+ <param><ptype>GLuint</ptype> <name>presentDurationId</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>target0</name></param>
+ <param><ptype>GLuint</ptype> <name>fill0</name></param>
+ <param><ptype>GLuint</ptype> <name>key0</name></param>
+ <param><ptype>GLenum</ptype> <name>target1</name></param>
+ <param><ptype>GLuint</ptype> <name>fill1</name></param>
+ <param><ptype>GLuint</ptype> <name>key1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveBoundingBoxEXT</name></proto>
+ <param><ptype>GLfloat</ptype> <name>minX</name></param>
+ <param><ptype>GLfloat</ptype> <name>minY</name></param>
+ <param><ptype>GLfloat</ptype> <name>minZ</name></param>
+ <param><ptype>GLfloat</ptype> <name>minW</name></param>
+ <param><ptype>GLfloat</ptype> <name>maxX</name></param>
+ <param><ptype>GLfloat</ptype> <name>maxY</name></param>
+ <param><ptype>GLfloat</ptype> <name>maxZ</name></param>
+ <param><ptype>GLfloat</ptype> <name>maxW</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveRestartIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveRestartIndexNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveRestartNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPrioritizeTextures</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param len="n">const <ptype>GLfloat</ptype> *<name>priorities</name></param>
+ <glx type="render" opcode="4118"/>
+ </command>
+ <command>
+ <proto>void <name>glPrioritizeTexturesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="ClampedFloat32" len="n">const <ptype>GLclampf</ptype> *<name>priorities</name></param>
+ <alias name="glPrioritizeTextures"/>
+ <glx type="render" opcode="4118"/>
+ </command>
+ <command>
+ <proto>void <name>glPrioritizeTexturesxOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="ClampedFixed" len="n">const <ptype>GLfixed</ptype> *<name>priorities</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBinary</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>binaryFormat</name></param>
+ <param len="length">const void *<name>binary</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBinaryOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>binaryFormat</name></param>
+ <param len="length">const void *<name>binary</name></param>
+ <param><ptype>GLint</ptype> <name>length</name></param>
+ <alias name="glProgramBinary"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramBufferParametersIivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>wordIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBufferParametersIuivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>wordIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBufferParametersfvNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>wordIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4dARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameter4dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4dvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4fARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameter4fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4fvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4iNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameterI4ivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4uiNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameterI4uivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameters4fvEXT</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4281"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParametersI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParametersI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4dARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameter4dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4dvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4fARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameter4fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4fvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4iNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameterI4ivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4uiNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameterI4uivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameters4fvEXT</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4282"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParametersI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParametersI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramNamedParameter4dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4219"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramNamedParameter4fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4218"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4dNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramParameter4dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4dvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4185"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4fNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramParameter4fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4fvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4184"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameteri</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameteriARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ <alias name="glProgramParameteri"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameteriEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ <alias name="glProgramParameteri"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameters4dvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4187"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameters4fvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4186"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramPathFragmentInputGenNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLenum</ptype> <name>genMode</name></param>
+ <param><ptype>GLint</ptype> <name>components</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>coeffs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramStringARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramFormatARB"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramSubroutineParametersuivNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <alias name="glProgramUniform1f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <alias name="glProgramUniform1i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <alias name="glProgramUniform1ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ <param><ptype>GLdouble</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <alias name="glProgramUniform2f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <alias name="glProgramUniform2i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <alias name="glProgramUniform2ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ <param><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param><ptype>GLdouble</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <alias name="glProgramUniform3f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <alias name="glProgramUniform3i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <alias name="glProgramUniform3ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ <param><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLdouble</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ <alias name="glProgramUniform4f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ <alias name="glProgramUniform4i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ <alias name="glProgramUniform4ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64ARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64vARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix2x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix2x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*9">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix3x2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix3x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*16">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix4x2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix4x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramVertexLimitNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>limit</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProvokingVertex</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProvokingVertexEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glProvokingVertex"/>
+ </command>
+ <command>
+ <proto>void <name>glPushAttrib</name></proto>
+ <param group="AttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="142"/>
+ </command>
+ <command>
+ <proto>void <name>glPushClientAttrib</name></proto>
+ <param group="ClientAttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushClientAttribDefaultEXT</name></proto>
+ <param group="ClientAttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushDebugGroup</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(message,length)">const <ptype>GLchar</ptype> *<name>message</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushDebugGroupKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>message</name></param>
+ <alias name="glPushDebugGroup"/>
+ </command>
+ <command>
+ <proto>void <name>glPushGroupMarkerEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>marker</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushMatrix</name></proto>
+ <glx type="render" opcode="184"/>
+ </command>
+ <command>
+ <proto>void <name>glPushName</name></proto>
+ <param group="SelectName"><ptype>GLuint</ptype> <name>name</name></param>
+ <glx type="render" opcode="125"/>
+ </command>
+ <command>
+ <proto>void <name>glQueryCounter</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glQueryCounterEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glQueryCounter"/>
+ </command>
+ <command>
+ <proto><ptype>GLbitfield</ptype> <name>glQueryMatrixxOES</name></proto>
+ <param len="16"><ptype>GLfixed</ptype> *<name>mantissa</name></param>
+ <param len="16"><ptype>GLint</ptype> *<name>exponent</name></param>
+ </command>
+ <command>
+ <proto>void <name>glQueryObjectParameteruiAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="OcclusionQueryEventMaskAMD"><ptype>GLuint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="33"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="34"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="35"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="36"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="37"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="38"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="39"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="40"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4dv</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="41"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4fv</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="42"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4iv</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="43"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4sv</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="44"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ <param><ptype>GLfixed</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadBuffer</name></proto>
+ <param group="ReadBufferMode"><ptype>GLenum</ptype> <name>src</name></param>
+ <glx type="render" opcode="171"/>
+ </command>
+ <command>
+ <proto>void <name>glReadBufferIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadBufferNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadInstrumentsSGIX</name></proto>
+ <param><ptype>GLint</ptype> <name>marker</name></param>
+ <glx type="render" opcode="2077"/>
+ </command>
+ <command>
+ <proto>void <name>glReadPixels</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">void *<name>pixels</name></param>
+ <glx type="single" opcode="111"/>
+ <glx type="render" opcode="345" name="glReadPixelsPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glReadnPixels</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param>void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadnPixelsARB</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>data</name></param>
+ <alias name="glReadnPixels"/>
+ </command>
+ <command>
+ <proto>void <name>glReadnPixelsEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>data</name></param>
+ <alias name="glReadnPixels"/>
+ </command>
+ <command>
+ <proto>void <name>glReadnPixelsKHR</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize">void *<name>data</name></param>
+ <alias name="glReadnPixels"/>
+ </command>
+ <command>
+ <proto>void <name>glRectd</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x2</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y2</name></param>
+ <vecequiv name="glRectdv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectdv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v1</name></param>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="45"/>
+ </command>
+ <command>
+ <proto>void <name>glRectf</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x2</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y2</name></param>
+ <vecequiv name="glRectfv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectfv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v1</name></param>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="46"/>
+ </command>
+ <command>
+ <proto>void <name>glRecti</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x1</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y1</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x2</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y2</name></param>
+ <vecequiv name="glRectiv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectiv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v1</name></param>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="47"/>
+ </command>
+ <command>
+ <proto>void <name>glRects</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x1</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y1</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x2</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y2</name></param>
+ <vecequiv name="glRectsv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectsv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v1</name></param>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="48"/>
+ </command>
+ <command>
+ <proto>void <name>glRectxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x1</name></param>
+ <param><ptype>GLfixed</ptype> <name>y1</name></param>
+ <param><ptype>GLfixed</ptype> <name>x2</name></param>
+ <param><ptype>GLfixed</ptype> <name>y2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRectxvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>v1</name></param>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReferencePlaneSGIX</name></proto>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>equation</name></param>
+ <glx type="render" opcode="2071"/>
+ </command>
+ <command>
+ <proto>void <name>glReleaseShaderCompiler</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glRenderMode</name></proto>
+ <param group="RenderingMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="single" opcode="107"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorage</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4318"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageEXT</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glRenderbufferStorage"/>
+ <glx type="render" opcode="4318"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4331"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleANGLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleCoverageNV</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glRenderbufferStorageMultisample"/>
+ <glx type="render" opcode="4331"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glRenderbufferStorageMultisample"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodePointerSUN</name></proto>
+ <param group="ReplacementCodeTypeSUN"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeubSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeubvSUN</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLubyte</ptype> *<name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4fNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4fNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4ubVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4ubVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiSUN</name></proto>
+ <param><ptype>GLuint</ptype> <name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuivSUN</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLuint</ptype> *<name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeusSUN</name></proto>
+ <param><ptype>GLushort</ptype> <name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeusvSUN</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLushort</ptype> *<name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRequestResidentProgramsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <glx type="render" opcode="4182"/>
+ </command>
+ <command>
+ <proto>void <name>glResetHistogram</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="4112"/>
+ </command>
+ <command>
+ <proto>void <name>glResetHistogramEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glResetHistogram"/>
+ <glx type="render" opcode="4112"/>
+ </command>
+ <command>
+ <proto>void <name>glResetMinmax</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="4113"/>
+ </command>
+ <command>
+ <proto>void <name>glResetMinmaxEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glResetMinmax"/>
+ <glx type="render" opcode="4113"/>
+ </command>
+ <command>
+ <proto>void <name>glResizeBuffersMESA</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glResolveMultisampleFramebufferAPPLE</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glResumeTransformFeedback</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glResumeTransformFeedbackNV</name></proto>
+ <alias name="glResumeTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glRotated</name></proto>
+ <param><ptype>GLdouble</ptype> <name>angle</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <glx type="render" opcode="185"/>
+ </command>
+ <command>
+ <proto>void <name>glRotatef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>angle</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <glx type="render" opcode="186"/>
+ </command>
+ <command>
+ <proto>void <name>glRotatex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>angle</name></param>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRotatexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>angle</name></param>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoverage</name></proto>
+ <param><ptype>GLfloat</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ <glx type="render" opcode="229"/>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoverageARB</name></proto>
+ <param><ptype>GLfloat</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ <alias name="glSampleCoverage"/>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoverageOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoveragex</name></proto>
+ <param><ptype>GLclampx</ptype> <name>value</name></param>
+ <param><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoveragexOES</name></proto>
+ <param><ptype>GLclampx</ptype> <name>value</name></param>
+ <param><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMapATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>interp</name></param>
+ <param group="SwizzleOpATI"><ptype>GLenum</ptype> <name>swizzle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaskEXT</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaskIndexedNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="SampleMaskNV"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaskSGIS</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ <alias name="glSampleMaskEXT"/>
+ <glx type="render" opcode="2048"/>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaski</name></proto>
+ <param><ptype>GLuint</ptype> <name>maskNumber</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplePatternEXT</name></proto>
+ <param group="SamplePatternEXT"><ptype>GLenum</ptype> <name>pattern</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplePatternSGIS</name></proto>
+ <param group="SamplePatternSGIS"><ptype>GLenum</ptype> <name>pattern</name></param>
+ <alias name="glSamplePatternEXT"/>
+ <glx type="render" opcode="2049"/>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterIivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ <alias name="glSamplerParameterIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterIuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>param</name></param>
+ <alias name="glSamplerParameterIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterf</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameteri</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScaled</name></proto>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <glx type="render" opcode="187"/>
+ </command>
+ <command>
+ <proto>void <name>glScalef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <glx type="render" opcode="188"/>
+ </command>
+ <command>
+ <proto>void <name>glScalex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScalexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScissor</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="103"/>
+ </command>
+ <command>
+ <proto>void <name>glScissorArrayv</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScissorIndexed</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>left</name></param>
+ <param><ptype>GLint</ptype> <name>bottom</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScissorIndexedv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3b</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3bv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3bEXT</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3b"/>
+ <vecequiv name="glSecondaryColor3bvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3bv</name></proto>
+ <param group="ColorB" len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4126"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3bvEXT</name></proto>
+ <param group="ColorB" len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3bv"/>
+ <glx type="render" opcode="4126"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3d</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3dEXT</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3d"/>
+ <vecequiv name="glSecondaryColor3dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3dv</name></proto>
+ <param group="ColorD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4130"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3dvEXT</name></proto>
+ <param group="ColorD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3dv"/>
+ <glx type="render" opcode="4130"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3f</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3fEXT</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3f"/>
+ <vecequiv name="glSecondaryColor3fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3fv</name></proto>
+ <param group="ColorF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4129"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3fvEXT</name></proto>
+ <param group="ColorF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3fv"/>
+ <glx type="render" opcode="4129"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>red</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>green</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4255"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3i</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3iEXT</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3i"/>
+ <vecequiv name="glSecondaryColor3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3iv</name></proto>
+ <param group="ColorI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4128"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ivEXT</name></proto>
+ <param group="ColorI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3iv"/>
+ <glx type="render" opcode="4128"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3s</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3sEXT</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3s"/>
+ <vecequiv name="glSecondaryColor3svEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3sv</name></proto>
+ <param group="ColorS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4127"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3svEXT</name></proto>
+ <param group="ColorS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3sv"/>
+ <glx type="render" opcode="4127"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ub</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ubEXT</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3ub"/>
+ <vecequiv name="glSecondaryColor3ubvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ubv</name></proto>
+ <param group="ColorUB" len="3">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4131"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ubvEXT</name></proto>
+ <param group="ColorUB" len="3">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3ubv"/>
+ <glx type="render" opcode="4131"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ui</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3uiEXT</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3ui"/>
+ <vecequiv name="glSecondaryColor3uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3uiv</name></proto>
+ <param group="ColorUI" len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4133"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3uivEXT</name></proto>
+ <param group="ColorUI" len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3uiv"/>
+ <glx type="render" opcode="4133"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3us</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3usv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3usEXT</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3us"/>
+ <vecequiv name="glSecondaryColor3usvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3usv</name></proto>
+ <param group="ColorUS" len="3">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4132"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3usvEXT</name></proto>
+ <param group="ColorUS" len="3">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3usv"/>
+ <glx type="render" opcode="4132"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ <alias name="glSecondaryColorPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="SecondaryColorPointerTypeIBM"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSelectBuffer</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param group="SelectName" len="size"><ptype>GLuint</ptype> *<name>buffer</name></param>
+ <glx type="single" opcode="106"/>
+ </command>
+ <command>
+ <proto>void <name>glSelectPerfMonitorCountersAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enable</name></param>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLint</ptype> <name>numCounters</name></param>
+ <param len="numCounters"><ptype>GLuint</ptype> *<name>counterList</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSeparableFilter2D</name></proto>
+ <param group="SeparableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type,width)">const void *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type,height)">const void *<name>column</name></param>
+ <glx type="render" opcode="4109"/>
+ <glx type="render" opcode="327" name="glSeparableFilter2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glSeparableFilter2DEXT</name></proto>
+ <param group="SeparableTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type,width)">const void *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type,height)">const void *<name>column</name></param>
+ <alias name="glSeparableFilter2D"/>
+ <glx type="render" opcode="4109"/>
+ </command>
+ <command>
+ <proto>void <name>glSetFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <param group="FenceConditionNV"><ptype>GLenum</ptype> <name>condition</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetFragmentShaderConstantATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetInvariantEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(id,type)">const void *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetLocalConstantEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(id,type)">const void *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetMultisamplefvAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>val</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShadeModel</name></proto>
+ <param group="ShadingModel"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="104"/>
+ </command>
+ <command>
+ <proto>void <name>glShaderBinary</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>shaders</name></param>
+ <param><ptype>GLenum</ptype> <name>binaryformat</name></param>
+ <param len="length">const void *<name>binary</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderOp1EXT</name></proto>
+ <param group="VertexShaderOpEXT"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderOp2EXT</name></proto>
+ <param group="VertexShaderOpEXT"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderOp3EXT</name></proto>
+ <param group="VertexShaderOpEXT"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderSource</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>string</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderSourceARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>shaderObj</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLcharARB</ptype> **<name>string</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>length</name></param>
+ <alias name="glShaderSource"/>
+ </command>
+ <command>
+ <proto>void <name>glShaderStorageBlockBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>storageBlockIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>storageBlockBinding</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSharpenTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2052"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameterfSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="2060"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameterfvSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2061"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameteriSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="2062"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameterivSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2063"/>
+ </command>
+ <command>
+ <proto>void <name>glStartInstrumentsSGIX</name></proto>
+ <glx type="render" opcode="2069"/>
+ </command>
+ <command>
+ <proto>void <name>glStartTilingQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>width</name></param>
+ <param><ptype>GLuint</ptype> <name>height</name></param>
+ <param><ptype>GLbitfield</ptype> <name>preserveMask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilClearTagEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stencilTagBits</name></param>
+ <param><ptype>GLuint</ptype> <name>stencilClearTag</name></param>
+ <glx type="render" opcode="4223"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilFillPathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="PathFillMode"><ptype>GLenum</ptype> <name>fillMode</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilFillPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathFillMode"><ptype>GLenum</ptype> <name>fillMode</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilFunc</name></proto>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <glx type="render" opcode="162"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilFuncSeparate</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilFuncSeparateATI</name></proto>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>frontfunc</name></param>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>backfunc</name></param>
+ <param group="ClampedStencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilMask</name></proto>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <glx type="render" opcode="133"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilMaskSeparate</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilOp</name></proto>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>fail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>zfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>zpass</name></param>
+ <glx type="render" opcode="163"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilOpSeparate</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>sfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dpfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dppass</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilOpSeparateATI</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>sfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dpfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dppass</name></param>
+ <alias name="glStencilOpSeparate"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilOpValueAMD</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilStrokePathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const void *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>reference</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilStrokePathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>reference</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilThenCoverFillPathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param>const void *<name>paths</name></param>
+ <param><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param><ptype>GLenum</ptype> <name>fillMode</name></param>
+ <param><ptype>GLuint</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>coverMode</name></param>
+ <param><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilThenCoverFillPathNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLenum</ptype> <name>fillMode</name></param>
+ <param><ptype>GLuint</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>coverMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilThenCoverStrokePathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param>const void *<name>paths</name></param>
+ <param><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param><ptype>GLint</ptype> <name>reference</name></param>
+ <param><ptype>GLuint</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>coverMode</name></param>
+ <param><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilThenCoverStrokePathNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLint</ptype> <name>reference</name></param>
+ <param><ptype>GLuint</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>coverMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStopInstrumentsSGIX</name></proto>
+ <param><ptype>GLint</ptype> <name>marker</name></param>
+ <glx type="render" opcode="2070"/>
+ </command>
+ <command>
+ <proto>void <name>glStringMarkerGREMEDY</name></proto>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const void *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSwizzleEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>in</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outX</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outY</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outZ</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outW</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSyncTextureINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTagSampleBufferSGIX</name></proto>
+ <glx type="render" opcode="2050"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3bEXT</name></proto>
+ <param><ptype>GLbyte</ptype> <name>tx</name></param>
+ <param><ptype>GLbyte</ptype> <name>ty</name></param>
+ <param><ptype>GLbyte</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3bvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3bvEXT</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3dEXT</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>tx</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>ty</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3dvEXT</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3fEXT</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>tx</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>ty</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3fvEXT</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3iEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>tx</name></param>
+ <param><ptype>GLint</ptype> <name>ty</name></param>
+ <param><ptype>GLint</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3ivEXT</name></proto>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3sEXT</name></proto>
+ <param><ptype>GLshort</ptype> <name>tx</name></param>
+ <param><ptype>GLshort</ptype> <name>ty</name></param>
+ <param><ptype>GLshort</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3svEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3svEXT</name></proto>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangentPointerEXT</name></proto>
+ <param group="TangentPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTbufferMask3DFX</name></proto>
+ <param><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTessellationFactorAMD</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTessellationModeAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glTestFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glTestFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <glx type="vendor" opcode="1279"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glTestObjectAPPLE</name></proto>
+ <param group="ObjectTypeAPPLE"><ptype>GLenum</ptype> <name>object</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBuffer</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glTexBuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glTexBuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferRange</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glTexBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glTexBumpParameterfvATI</name></proto>
+ <param group="TexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBumpParameterivATI</name></proto>
+ <param group="TexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1bvOES</name></proto>
+ <param len="1">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1dv</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="49"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1fv</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="50"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1hvNV</name></proto>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4246"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1iv</name></proto>
+ <param group="CoordI" len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="51"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1sv</name></proto>
+ <param group="CoordS" len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="52"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1xvOES</name></proto>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2bvOES</name></proto>
+ <param len="2">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="53"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor3fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4fNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4fNormal3fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4ubVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4ubVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fNormal3fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="54"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2hvNV</name></proto>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4247"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="55"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="56"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3bvOES</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="57"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="58"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4248"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="59"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="60"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ <param><ptype>GLbyte</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4bvOES</name></proto>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4dv</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="61"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fColor4fNormal3fVertex4fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>p</name></param>
+ <param><ptype>GLfloat</ptype> <name>q</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fColor4fNormal3fVertex4fvSUN</name></proto>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fVertex4fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>p</name></param>
+ <param><ptype>GLfloat</ptype> <name>q</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fVertex4fvSUN</name></proto>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fv</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="62"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4hvNV</name></proto>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4249"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4iv</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="63"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4sv</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="64"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP1ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP1uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP2ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP2uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(size,type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointervINTEL</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvf</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="111"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvfv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="112"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvi</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="113"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnviv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="114"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvx</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexFilterFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureFilterSGIS"><ptype>GLenum</ptype> <name>filter</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLfloat</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="2064"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGend</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLdouble</ptype> <name>param</name></param>
+ <glx type="render" opcode="115"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGendv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="render" opcode="116"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenf</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="117"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenfOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGenfv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="118"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenfvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGeni</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="119"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGeniOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGeniv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="120"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGenxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGenxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="109"/>
+ <glx type="render" opcode="328" name="glTexImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="110"/>
+ <glx type="render" opcode="329" name="glTexImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage2DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage2DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="4114"/>
+ <glx type="render" opcode="330" name="glTexImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <alias name="glTexImage3D"/>
+ <glx type="render" opcode="4114"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <alias name="glTexImage3D"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage4DSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>size4d</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth,size4d)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="2057"/>
+ </command>
+ <command>
+ <proto>void <name>glTexPageCommitmentARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLboolean</ptype> <name>resident</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="346"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glTexParameterIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIuiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="347"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIuivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glTexParameterIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterf</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="105"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterfv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="106"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameteri</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="107"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameteriv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="108"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterx</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexRenderbufferNV</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage1D</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage1DEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glTexStorage1D"/>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage2D</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage2DEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glTexStorage2D"/>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage2DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3D</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3DEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <alias name="glTexStorage3D"/>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3DMultisampleOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ <alias name="glTexStorage3DMultisample"/>
+ </command>
+ <command>
+ <proto>void <name>glTexStorageSparseAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>layers</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="4099"/>
+ <glx type="render" opcode="331" name="glTexSubImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage1DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ <alias name="glTexSubImage1D"/>
+ <glx type="render" opcode="4099"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="4100"/>
+ <glx type="render" opcode="332" name="glTexSubImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage2DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ <alias name="glTexSubImage2D"/>
+ <glx type="render" opcode="4100"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="4115"/>
+ <glx type="render" opcode="333" name="glTexSubImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage3DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <alias name="glTexSubImage3D"/>
+ <glx type="render" opcode="4115"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ <alias name="glTexSubImage3D"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage4DSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>woffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>size4d</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth,size4d)">const void *<name>pixels</name></param>
+ <glx type="render" opcode="2058"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureBarrier</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glTextureBarrierNV</name></proto>
+ <glx type="render" opcode="4348"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureBufferEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureBufferRange</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureBufferRangeEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureColorMaskSGIS</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>red</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>green</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>blue</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="2082"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage2DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage2DMultisampleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage3DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage3DMultisampleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureLightEXT</name></proto>
+ <param group="LightTexturePNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureMaterialEXT</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureNormalEXT</name></proto>
+ <param group="TextureNormalModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexturePageCommitmentEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLboolean</ptype> <name>resident</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterIivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterIuivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterf</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterfEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glTextureParameterfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterfvEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameteri</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameteriEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glTextureParameterivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureRangeAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureRenderbufferEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage1D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage1DEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage2D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage2DEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage2DMultisample</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage2DMultisampleEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage3D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage3DEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage3DMultisample</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage3DMultisampleEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorageSparseAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>layers</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage1D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage2D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage3D</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const void *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureView</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>origtexture</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>minlevel</name></param>
+ <param><ptype>GLuint</ptype> <name>numlevels</name></param>
+ <param><ptype>GLuint</ptype> <name>minlayer</name></param>
+ <param><ptype>GLuint</ptype> <name>numlayers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureViewEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>origtexture</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>minlevel</name></param>
+ <param><ptype>GLuint</ptype> <name>numlevels</name></param>
+ <param><ptype>GLuint</ptype> <name>minlayer</name></param>
+ <param><ptype>GLuint</ptype> <name>numlayers</name></param>
+ <alias name="glTextureView"/>
+ </command>
+ <command>
+ <proto>void <name>glTrackMatrixNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>address</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>matrix</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>transform</name></param>
+ <glx type="render" opcode="4188"/>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackAttribsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLint</ptype> *<name>attribs</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackBufferBase</name></proto>
+ <param><ptype>GLuint</ptype> <name>xfb</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackBufferRange</name></proto>
+ <param><ptype>GLuint</ptype> <name>xfb</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackStreamAttribsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>attribs</name></param>
+ <param><ptype>GLsizei</ptype> <name>nbuffers</name></param>
+ <param len="nbuffers">const <ptype>GLint</ptype> *<name>bufstreams</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackVaryings</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>varyings</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackVaryingsEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>varyings</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ <alias name="glTransformFeedbackVaryings"/>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackVaryingsNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>locations</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>srcPath</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTranslated</name></proto>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <glx type="render" opcode="189"/>
+ </command>
+ <command>
+ <proto>void <name>glTranslatef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <glx type="render" opcode="190"/>
+ </command>
+ <command>
+ <proto>void <name>glTranslatex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTranslatexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <alias name="glUniform1f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <alias name="glUniform1i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <alias name="glUniform1ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <alias name="glUniform2f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <alias name="glUniform2i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <alias name="glUniform2ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <alias name="glUniform3f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <alias name="glUniform3i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <alias name="glUniform3ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ <alias name="glUniform4f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ <alias name="glUniform4i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ <alias name="glUniform4ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformBlockBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockBinding</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64ARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64vARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="305"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x3fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix2x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="307"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x4fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix2x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*9">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*9">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*9">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="306"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x2fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix3x2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="309"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x4fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix3x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*16">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*16">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*16">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="308"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x2fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix4x2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="310"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x3fvNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix4x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformSubroutinesuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*1">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUnlockArraysEXT</name></proto>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glUnmapBuffer</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glUnmapBufferARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glUnmapBuffer"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glUnmapBufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glUnmapBuffer"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glUnmapNamedBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glUnmapNamedBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUnmapObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUnmapTexture2DINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUpdateObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size">const void *<name>pointer</name></param>
+ <param group="PreserveModeATI"><ptype>GLenum</ptype> <name>preserve</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseProgramObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <alias name="glUseProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glUseProgramStages</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLbitfield</ptype> <name>stages</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseProgramStagesEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLbitfield</ptype> <name>stages</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseShaderProgramEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUFiniNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUGetSurfaceivNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUInitNV</name></proto>
+ <param>const void *<name>vdpDevice</name></param>
+ <param>const void *<name>getProcAddress</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glVDPAUIsSurfaceNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUMapSurfacesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numSurfaces</name></param>
+ <param group="vdpauSurfaceNV" len="numSurfaces">const <ptype>GLvdpauSurfaceNV</ptype> *<name>surfaces</name></param>
+ </command>
+ <command>
+ <proto group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>glVDPAURegisterOutputSurfaceNV</name></proto>
+ <param>const void *<name>vdpSurface</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numTextureNames</name></param>
+ <param len="numTextureNames">const <ptype>GLuint</ptype> *<name>textureNames</name></param>
+ </command>
+ <command>
+ <proto group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>glVDPAURegisterVideoSurfaceNV</name></proto>
+ <param>const void *<name>vdpSurface</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numTextureNames</name></param>
+ <param len="numTextureNames">const <ptype>GLuint</ptype> *<name>textureNames</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUSurfaceAccessNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUUnmapSurfacesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numSurface</name></param>
+ <param group="vdpauSurfaceNV" len="numSurface">const <ptype>GLvdpauSurfaceNV</ptype> *<name>surfaces</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUUnregisterSurfaceNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgramARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <alias name="glValidateProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgramPipeline</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgramPipelineEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantArrayObjectATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantPointerEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(id,type,stride)">const void *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantbvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLbyte</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantdvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLdouble</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantfvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLfloat</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLint</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantsvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLshort</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantubvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLubyte</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLuint</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantusvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLushort</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>x</name></param>
+ <param><ptype>GLbyte</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2bvOES</name></proto>
+ <param len="2">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="65"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="66"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2hvNV</name></proto>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4240"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="67"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="68"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>x</name></param>
+ <param><ptype>GLbyte</ptype> <name>y</name></param>
+ <param><ptype>GLbyte</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3bvOES</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="69"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="70"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4241"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="71"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="72"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>x</name></param>
+ <param><ptype>GLbyte</ptype> <name>y</name></param>
+ <param><ptype>GLbyte</ptype> <name>z</name></param>
+ <param><ptype>GLbyte</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4bvOES</name></proto>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4dv</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="73"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4fv</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="74"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4hvNV</name></proto>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4242"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4iv</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="75"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4sv</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="76"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayAttribBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayAttribFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayAttribIFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayAttribLFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayBindVertexBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayBindingDivisor</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayColorOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayEdgeFlagOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayElementBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayFogCoordOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="FogCoordinatePointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayIndexOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayMultiTexCoordOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayNormalOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayParameteriAPPLE</name></proto>
+ <param group="VertexArrayPNameAPPLE"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayRangeAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayRangeNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(length)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArraySecondaryColorOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayTexCoordOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribBindingEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribDivisorEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribFormatEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribIFormatEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribIOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribLFormatEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribLOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexBindingDivisorEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexBuffers</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ <param>const <ptype>GLintptr</ptype> *<name>offsets</name></param>
+ <param>const <ptype>GLsizei</ptype> *<name>strides</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1d"/>
+ <vecequiv name="glVertexAttrib1dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1d"/>
+ <vecequiv name="glVertexAttrib1dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4197"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1dv"/>
+ <glx type="render" opcode="4197"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1dv"/>
+ <glx type="render" opcode="4197"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1f"/>
+ <vecequiv name="glVertexAttrib1fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1f"/>
+ <vecequiv name="glVertexAttrib1fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4193"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1fv"/>
+ <glx type="render" opcode="4193"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1fv"/>
+ <glx type="render" opcode="4193"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4257"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1s"/>
+ <vecequiv name="glVertexAttrib1svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1s"/>
+ <vecequiv name="glVertexAttrib1svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4189"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1sv"/>
+ <glx type="render" opcode="4189"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1sv"/>
+ <glx type="render" opcode="4189"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2d"/>
+ <vecequiv name="glVertexAttrib2dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2d"/>
+ <vecequiv name="glVertexAttrib2dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4198"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2dv"/>
+ <glx type="render" opcode="4198"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2dv"/>
+ <glx type="render" opcode="4198"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2f"/>
+ <vecequiv name="glVertexAttrib2fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2f"/>
+ <vecequiv name="glVertexAttrib2fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4194"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2fv"/>
+ <glx type="render" opcode="4194"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2fv"/>
+ <glx type="render" opcode="4194"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4258"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2s"/>
+ <vecequiv name="glVertexAttrib2svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2s"/>
+ <vecequiv name="glVertexAttrib2svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4190"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2sv"/>
+ <glx type="render" opcode="4190"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2sv"/>
+ <glx type="render" opcode="4190"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3d"/>
+ <vecequiv name="glVertexAttrib3dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3d"/>
+ <vecequiv name="glVertexAttrib3dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4199"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3dv"/>
+ <glx type="render" opcode="4199"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3dv"/>
+ <glx type="render" opcode="4199"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3f"/>
+ <vecequiv name="glVertexAttrib3fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3f"/>
+ <vecequiv name="glVertexAttrib3fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4195"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3fv"/>
+ <glx type="render" opcode="4195"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3fv"/>
+ <glx type="render" opcode="4195"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4259"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3s"/>
+ <vecequiv name="glVertexAttrib3svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3s"/>
+ <vecequiv name="glVertexAttrib3svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4191"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3sv"/>
+ <glx type="render" opcode="4191"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3sv"/>
+ <glx type="render" opcode="4191"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nbv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NbvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nbv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Niv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Niv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nsv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NsvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nsv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nub</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLubyte</ptype> <name>x</name></param>
+ <param><ptype>GLubyte</ptype> <name>y</name></param>
+ <param><ptype>GLubyte</ptype> <name>z</name></param>
+ <param><ptype>GLubyte</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NubARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLubyte</ptype> <name>x</name></param>
+ <param><ptype>GLubyte</ptype> <name>y</name></param>
+ <param><ptype>GLubyte</ptype> <name>z</name></param>
+ <param><ptype>GLubyte</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4Nub"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nubv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4201"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NubvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nubv"/>
+ <glx type="render" opcode="4201"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NuivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nusv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NusvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nusv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4bv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4bvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4bv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4d"/>
+ <vecequiv name="glVertexAttrib4dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4d"/>
+ <vecequiv name="glVertexAttrib4dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4200"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4dv"/>
+ <glx type="render" opcode="4200"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4dv"/>
+ <glx type="render" opcode="4200"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4f"/>
+ <vecequiv name="glVertexAttrib4fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4f"/>
+ <vecequiv name="glVertexAttrib4fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4196"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4fv"/>
+ <glx type="render" opcode="4196"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4fv"/>
+ <glx type="render" opcode="4196"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4260"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4s"/>
+ <vecequiv name="glVertexAttrib4svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4s"/>
+ <vecequiv name="glVertexAttrib4svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4192"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4sv"/>
+ <glx type="render" opcode="4192"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4sv"/>
+ <glx type="render" opcode="4192"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>x</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>y</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>z</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4Nub"/>
+ <vecequiv name="glVertexAttrib4ubvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ColorUB" len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nubv"/>
+ <glx type="render" opcode="4201"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4uivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4usv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4usvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4usv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribArrayObjectATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisor</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorANGLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ <alias name="glVertexAttribDivisor"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ <alias name="glVertexAttribDivisor"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ <alias name="glVertexAttribDivisor"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ <alias name="glVertexAttribDivisor"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribFormatNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttribI1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <alias name="glVertexAttribI1i"/>
+ <vecequiv name="glVertexAttribI1ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttribI1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <alias name="glVertexAttribI1ui"/>
+ <vecequiv name="glVertexAttribI1uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttribI2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <alias name="glVertexAttribI2i"/>
+ <vecequiv name="glVertexAttribI2ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttribI2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <alias name="glVertexAttribI2ui"/>
+ <vecequiv name="glVertexAttribI2uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttribI3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <alias name="glVertexAttribI3i"/>
+ <vecequiv name="glVertexAttribI3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttribI3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <alias name="glVertexAttribI3ui"/>
+ <vecequiv name="glVertexAttribI3uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4bv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4bvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4bv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttribI4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <alias name="glVertexAttribI4i"/>
+ <vecequiv name="glVertexAttribI4ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4svEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ubv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ubvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttribI4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <alias name="glVertexAttribI4ui"/>
+ <vecequiv name="glVertexAttribI4uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4usv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4usvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4usv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIFormatNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIPointer</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIPointerEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ <alias name="glVertexAttribIPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <alias name="glVertexAttribL1d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64ARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64vARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glVertexAttribL2d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glVertexAttribL3d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <alias name="glVertexAttribL4d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLFormatNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLPointer</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="size">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLPointerEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="size">const void *<name>pointer</name></param>
+ <alias name="glVertexAttribLPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP1ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP1uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP2ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP2uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP3ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP3uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP4ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribParameteriAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribPointer</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribPointerARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ <alias name="glVertexAttribPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribPointerNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>fsize</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(fsize,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4210"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4206"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4261"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4202"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4211"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4207"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4262"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4203"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4212"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4208"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4263"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4204"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4213"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4209"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4264"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4205"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4ubvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="ColorUB" len="count*4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4214"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexBindingDivisor</name></proto>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexBlendARB</name></proto>
+ <param><ptype>GLint</ptype> <name>count</name></param>
+ <glx type="render" opcode="226"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexBlendEnvfATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexBlendEnviATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP2ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP2uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(size,type,stride,count)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const void **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointervINTEL</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const void **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeightPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexWeightPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeightfEXT</name></proto>
+ <param><ptype>GLfloat</ptype> <name>weight</name></param>
+ <vecequiv name="glVertexWeightfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeightfvEXT</name></proto>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>weight</name></param>
+ <glx type="render" opcode="4135"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeighthNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>weight</name></param>
+ <vecequiv name="glVertexWeighthvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeighthvNV</name></proto>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>weight</name></param>
+ <glx type="render" opcode="4256"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glVideoCaptureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> *<name>sequence_num</name></param>
+ <param><ptype>GLuint64EXT</ptype> *<name>capture_time</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVideoCaptureStreamParameterdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVideoCaptureStreamParameterfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVideoCaptureStreamParameterivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glViewport</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="191"/>
+ </command>
+ <command>
+ <proto>void <name>glViewportArrayv</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glViewportIndexedf</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <param><ptype>GLfloat</ptype> <name>h</name></param>
+ </command>
+ <command>
+ <proto>void <name>glViewportIndexedfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWaitSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWaitSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ <alias name="glWaitSync"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightPathsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="Path" len="numPaths">const <ptype>GLuint</ptype> *<name>paths</name></param>
+ <param len="numPaths">const <ptype>GLfloat</ptype> *<name>weights</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightPointerARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="WeightPointerTypeARB"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightPointerOES</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightbvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLbyte</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="220"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightdvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLdouble</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="228"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightfvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLfloat</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="227"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLint</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="224"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightsvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLshort</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="222"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightubvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLubyte</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="221"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightuivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLuint</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="225"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightusvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLushort</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="223"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dARB</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glWindowPos2d"/>
+ <vecequiv name="glWindowPos2dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dMESA</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glWindowPos2d"/>
+ <vecequiv name="glWindowPos2dvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dvARB</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2dv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dvMESA</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fARB</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glWindowPos2f"/>
+ <vecequiv name="glWindowPos2fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fMESA</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glWindowPos2f"/>
+ <vecequiv name="glWindowPos2fvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fvARB</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2fv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fvMESA</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2iARB</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <alias name="glWindowPos2i"/>
+ <vecequiv name="glWindowPos2ivARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2iMESA</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <alias name="glWindowPos2i"/>
+ <vecequiv name="glWindowPos2ivMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2ivARB</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2iv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2ivMESA</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2sARB</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glWindowPos2s"/>
+ <vecequiv name="glWindowPos2svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2sMESA</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glWindowPos2s"/>
+ <vecequiv name="glWindowPos2svMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2svARB</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2sv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2svMESA</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dARB</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glWindowPos3d"/>
+ <vecequiv name="glWindowPos3dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dMESA</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glWindowPos3d"/>
+ <vecequiv name="glWindowPos3dvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dvARB</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3dv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dvMESA</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fARB</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glWindowPos3f"/>
+ <vecequiv name="glWindowPos3fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fMESA</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glWindowPos3f"/>
+ <vecequiv name="glWindowPos3fvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fvARB</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3fv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fvMESA</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3iARB</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <alias name="glWindowPos3i"/>
+ <vecequiv name="glWindowPos3ivARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3iMESA</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <alias name="glWindowPos3i"/>
+ <vecequiv name="glWindowPos3ivMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3ivARB</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3iv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3ivMESA</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3sARB</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glWindowPos3s"/>
+ <vecequiv name="glWindowPos3svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3sMESA</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glWindowPos3s"/>
+ <vecequiv name="glWindowPos3svMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3svARB</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3sv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3svMESA</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4dMESA</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4dvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4dvMESA</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4fMESA</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4fvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4fvMESA</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4iMESA</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4ivMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4ivMESA</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4sMESA</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4svMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4svMESA</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWriteMaskEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>in</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outX</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outY</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outZ</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outW</name></param>
+ </command>
+ </commands>
+
+ <!-- SECTION: GL API interface definitions. -->
+ <feature api="gl" name="GL_VERSION_1_0" number="1.0">
+ <require>
+ <type name="GLvoid" comment="No longer used in headers"/>
+ <command name="glCullFace"/>
+ <command name="glFrontFace"/>
+ <command name="glHint"/>
+ <command name="glLineWidth"/>
+ <command name="glPointSize"/>
+ <command name="glPolygonMode"/>
+ <command name="glScissor"/>
+ <command name="glTexParameterf"/>
+ <command name="glTexParameterfv"/>
+ <command name="glTexParameteri"/>
+ <command name="glTexParameteriv"/>
+ <command name="glTexImage1D"/>
+ <command name="glTexImage2D"/>
+ <command name="glDrawBuffer"/>
+ <command name="glClear"/>
+ <command name="glClearColor"/>
+ <command name="glClearStencil"/>
+ <command name="glClearDepth"/>
+ <command name="glStencilMask"/>
+ <command name="glColorMask"/>
+ <command name="glDepthMask"/>
+ <command name="glDisable"/>
+ <command name="glEnable"/>
+ <command name="glFinish"/>
+ <command name="glFlush"/>
+ <command name="glBlendFunc"/>
+ <command name="glLogicOp"/>
+ <command name="glStencilFunc"/>
+ <command name="glStencilOp"/>
+ <command name="glDepthFunc"/>
+ <command name="glPixelStoref"/>
+ <command name="glPixelStorei"/>
+ <command name="glReadBuffer"/>
+ <command name="glReadPixels"/>
+ <command name="glGetBooleanv"/>
+ <command name="glGetDoublev"/>
+ <command name="glGetError"/>
+ <command name="glGetFloatv"/>
+ <command name="glGetIntegerv"/>
+ <command name="glGetString"/>
+ <command name="glGetTexImage"/>
+ <command name="glGetTexParameterfv"/>
+ <command name="glGetTexParameteriv"/>
+ <command name="glGetTexLevelParameterfv"/>
+ <command name="glGetTexLevelParameteriv"/>
+ <command name="glIsEnabled"/>
+ <command name="glDepthRange"/>
+ <command name="glViewport"/>
+ <command name="glNewList"/>
+ <command name="glEndList"/>
+ <command name="glCallList"/>
+ <command name="glCallLists"/>
+ <command name="glDeleteLists"/>
+ <command name="glGenLists"/>
+ <command name="glListBase"/>
+ <command name="glBegin"/>
+ <command name="glBitmap"/>
+ <command name="glColor3b"/>
+ <command name="glColor3bv"/>
+ <command name="glColor3d"/>
+ <command name="glColor3dv"/>
+ <command name="glColor3f"/>
+ <command name="glColor3fv"/>
+ <command name="glColor3i"/>
+ <command name="glColor3iv"/>
+ <command name="glColor3s"/>
+ <command name="glColor3sv"/>
+ <command name="glColor3ub"/>
+ <command name="glColor3ubv"/>
+ <command name="glColor3ui"/>
+ <command name="glColor3uiv"/>
+ <command name="glColor3us"/>
+ <command name="glColor3usv"/>
+ <command name="glColor4b"/>
+ <command name="glColor4bv"/>
+ <command name="glColor4d"/>
+ <command name="glColor4dv"/>
+ <command name="glColor4f"/>
+ <command name="glColor4fv"/>
+ <command name="glColor4i"/>
+ <command name="glColor4iv"/>
+ <command name="glColor4s"/>
+ <command name="glColor4sv"/>
+ <command name="glColor4ub"/>
+ <command name="glColor4ubv"/>
+ <command name="glColor4ui"/>
+ <command name="glColor4uiv"/>
+ <command name="glColor4us"/>
+ <command name="glColor4usv"/>
+ <command name="glEdgeFlag"/>
+ <command name="glEdgeFlagv"/>
+ <command name="glEnd"/>
+ <command name="glIndexd"/>
+ <command name="glIndexdv"/>
+ <command name="glIndexf"/>
+ <command name="glIndexfv"/>
+ <command name="glIndexi"/>
+ <command name="glIndexiv"/>
+ <command name="glIndexs"/>
+ <command name="glIndexsv"/>
+ <command name="glNormal3b"/>
+ <command name="glNormal3bv"/>
+ <command name="glNormal3d"/>
+ <command name="glNormal3dv"/>
+ <command name="glNormal3f"/>
+ <command name="glNormal3fv"/>
+ <command name="glNormal3i"/>
+ <command name="glNormal3iv"/>
+ <command name="glNormal3s"/>
+ <command name="glNormal3sv"/>
+ <command name="glRasterPos2d"/>
+ <command name="glRasterPos2dv"/>
+ <command name="glRasterPos2f"/>
+ <command name="glRasterPos2fv"/>
+ <command name="glRasterPos2i"/>
+ <command name="glRasterPos2iv"/>
+ <command name="glRasterPos2s"/>
+ <command name="glRasterPos2sv"/>
+ <command name="glRasterPos3d"/>
+ <command name="glRasterPos3dv"/>
+ <command name="glRasterPos3f"/>
+ <command name="glRasterPos3fv"/>
+ <command name="glRasterPos3i"/>
+ <command name="glRasterPos3iv"/>
+ <command name="glRasterPos3s"/>
+ <command name="glRasterPos3sv"/>
+ <command name="glRasterPos4d"/>
+ <command name="glRasterPos4dv"/>
+ <command name="glRasterPos4f"/>
+ <command name="glRasterPos4fv"/>
+ <command name="glRasterPos4i"/>
+ <command name="glRasterPos4iv"/>
+ <command name="glRasterPos4s"/>
+ <command name="glRasterPos4sv"/>
+ <command name="glRectd"/>
+ <command name="glRectdv"/>
+ <command name="glRectf"/>
+ <command name="glRectfv"/>
+ <command name="glRecti"/>
+ <command name="glRectiv"/>
+ <command name="glRects"/>
+ <command name="glRectsv"/>
+ <command name="glTexCoord1d"/>
+ <command name="glTexCoord1dv"/>
+ <command name="glTexCoord1f"/>
+ <command name="glTexCoord1fv"/>
+ <command name="glTexCoord1i"/>
+ <command name="glTexCoord1iv"/>
+ <command name="glTexCoord1s"/>
+ <command name="glTexCoord1sv"/>
+ <command name="glTexCoord2d"/>
+ <command name="glTexCoord2dv"/>
+ <command name="glTexCoord2f"/>
+ <command name="glTexCoord2fv"/>
+ <command name="glTexCoord2i"/>
+ <command name="glTexCoord2iv"/>
+ <command name="glTexCoord2s"/>
+ <command name="glTexCoord2sv"/>
+ <command name="glTexCoord3d"/>
+ <command name="glTexCoord3dv"/>
+ <command name="glTexCoord3f"/>
+ <command name="glTexCoord3fv"/>
+ <command name="glTexCoord3i"/>
+ <command name="glTexCoord3iv"/>
+ <command name="glTexCoord3s"/>
+ <command name="glTexCoord3sv"/>
+ <command name="glTexCoord4d"/>
+ <command name="glTexCoord4dv"/>
+ <command name="glTexCoord4f"/>
+ <command name="glTexCoord4fv"/>
+ <command name="glTexCoord4i"/>
+ <command name="glTexCoord4iv"/>
+ <command name="glTexCoord4s"/>
+ <command name="glTexCoord4sv"/>
+ <command name="glVertex2d"/>
+ <command name="glVertex2dv"/>
+ <command name="glVertex2f"/>
+ <command name="glVertex2fv"/>
+ <command name="glVertex2i"/>
+ <command name="glVertex2iv"/>
+ <command name="glVertex2s"/>
+ <command name="glVertex2sv"/>
+ <command name="glVertex3d"/>
+ <command name="glVertex3dv"/>
+ <command name="glVertex3f"/>
+ <command name="glVertex3fv"/>
+ <command name="glVertex3i"/>
+ <command name="glVertex3iv"/>
+ <command name="glVertex3s"/>
+ <command name="glVertex3sv"/>
+ <command name="glVertex4d"/>
+ <command name="glVertex4dv"/>
+ <command name="glVertex4f"/>
+ <command name="glVertex4fv"/>
+ <command name="glVertex4i"/>
+ <command name="glVertex4iv"/>
+ <command name="glVertex4s"/>
+ <command name="glVertex4sv"/>
+ <command name="glClipPlane"/>
+ <command name="glColorMaterial"/>
+ <command name="glFogf"/>
+ <command name="glFogfv"/>
+ <command name="glFogi"/>
+ <command name="glFogiv"/>
+ <command name="glLightf"/>
+ <command name="glLightfv"/>
+ <command name="glLighti"/>
+ <command name="glLightiv"/>
+ <command name="glLightModelf"/>
+ <command name="glLightModelfv"/>
+ <command name="glLightModeli"/>
+ <command name="glLightModeliv"/>
+ <command name="glLineStipple"/>
+ <command name="glMaterialf"/>
+ <command name="glMaterialfv"/>
+ <command name="glMateriali"/>
+ <command name="glMaterialiv"/>
+ <command name="glPolygonStipple"/>
+ <command name="glShadeModel"/>
+ <command name="glTexEnvf"/>
+ <command name="glTexEnvfv"/>
+ <command name="glTexEnvi"/>
+ <command name="glTexEnviv"/>
+ <command name="glTexGend"/>
+ <command name="glTexGendv"/>
+ <command name="glTexGenf"/>
+ <command name="glTexGenfv"/>
+ <command name="glTexGeni"/>
+ <command name="glTexGeniv"/>
+ <command name="glFeedbackBuffer"/>
+ <command name="glSelectBuffer"/>
+ <command name="glRenderMode"/>
+ <command name="glInitNames"/>
+ <command name="glLoadName"/>
+ <command name="glPassThrough"/>
+ <command name="glPopName"/>
+ <command name="glPushName"/>
+ <command name="glClearAccum"/>
+ <command name="glClearIndex"/>
+ <command name="glIndexMask"/>
+ <command name="glAccum"/>
+ <command name="glPopAttrib"/>
+ <command name="glPushAttrib"/>
+ <command name="glMap1d"/>
+ <command name="glMap1f"/>
+ <command name="glMap2d"/>
+ <command name="glMap2f"/>
+ <command name="glMapGrid1d"/>
+ <command name="glMapGrid1f"/>
+ <command name="glMapGrid2d"/>
+ <command name="glMapGrid2f"/>
+ <command name="glEvalCoord1d"/>
+ <command name="glEvalCoord1dv"/>
+ <command name="glEvalCoord1f"/>
+ <command name="glEvalCoord1fv"/>
+ <command name="glEvalCoord2d"/>
+ <command name="glEvalCoord2dv"/>
+ <command name="glEvalCoord2f"/>
+ <command name="glEvalCoord2fv"/>
+ <command name="glEvalMesh1"/>
+ <command name="glEvalPoint1"/>
+ <command name="glEvalMesh2"/>
+ <command name="glEvalPoint2"/>
+ <command name="glAlphaFunc"/>
+ <command name="glPixelZoom"/>
+ <command name="glPixelTransferf"/>
+ <command name="glPixelTransferi"/>
+ <command name="glPixelMapfv"/>
+ <command name="glPixelMapuiv"/>
+ <command name="glPixelMapusv"/>
+ <command name="glCopyPixels"/>
+ <command name="glDrawPixels"/>
+ <command name="glGetClipPlane"/>
+ <command name="glGetLightfv"/>
+ <command name="glGetLightiv"/>
+ <command name="glGetMapdv"/>
+ <command name="glGetMapfv"/>
+ <command name="glGetMapiv"/>
+ <command name="glGetMaterialfv"/>
+ <command name="glGetMaterialiv"/>
+ <command name="glGetPixelMapfv"/>
+ <command name="glGetPixelMapuiv"/>
+ <command name="glGetPixelMapusv"/>
+ <command name="glGetPolygonStipple"/>
+ <command name="glGetTexEnvfv"/>
+ <command name="glGetTexEnviv"/>
+ <command name="glGetTexGendv"/>
+ <command name="glGetTexGenfv"/>
+ <command name="glGetTexGeniv"/>
+ <command name="glIsList"/>
+ <command name="glFrustum"/>
+ <command name="glLoadIdentity"/>
+ <command name="glLoadMatrixf"/>
+ <command name="glLoadMatrixd"/>
+ <command name="glMatrixMode"/>
+ <command name="glMultMatrixf"/>
+ <command name="glMultMatrixd"/>
+ <command name="glOrtho"/>
+ <command name="glPopMatrix"/>
+ <command name="glPushMatrix"/>
+ <command name="glRotated"/>
+ <command name="glRotatef"/>
+ <command name="glScaled"/>
+ <command name="glScalef"/>
+ <command name="glTranslated"/>
+ <command name="glTranslatef"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_1" number="1.1">
+ <require>
+ <type name="GLclampf" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
+ <type name="GLclampd" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
+ <!-- Many of these are really VERSION_1_0 enums -->
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_NOTEQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_FRONT_LEFT"/>
+ <enum name="GL_FRONT_RIGHT"/>
+ <enum name="GL_BACK_LEFT"/>
+ <enum name="GL_BACK_RIGHT"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_LEFT"/>
+ <enum name="GL_RIGHT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_POINT_SIZE"/>
+ <enum name="GL_POINT_SIZE_RANGE"/>
+ <enum name="GL_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_LINE_WIDTH_RANGE"/>
+ <enum name="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_POLYGON_MODE"/>
+ <enum name="GL_POLYGON_SMOOTH"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_BLEND_DST"/>
+ <enum name="GL_BLEND_SRC"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_LOGIC_OP_MODE"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_DRAW_BUFFER"/>
+ <enum name="GL_READ_BUFFER"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_DOUBLEBUFFER"/>
+ <enum name="GL_STEREO"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum name="GL_UNPACK_SWAP_BYTES"/>
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_PACK_SWAP_BYTES"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_OFFSET_POINT"/>
+ <enum name="GL_POLYGON_OFFSET_LINE"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_TEXTURE_BINDING_1D"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_TEXTURE_WIDTH"/>
+ <enum name="GL_TEXTURE_HEIGHT"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum name="GL_TEXTURE_RED_SIZE"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_CLEAR"/>
+ <enum name="GL_AND"/>
+ <enum name="GL_AND_REVERSE"/>
+ <enum name="GL_COPY"/>
+ <enum name="GL_AND_INVERTED"/>
+ <enum name="GL_NOOP"/>
+ <enum name="GL_XOR"/>
+ <enum name="GL_OR"/>
+ <enum name="GL_NOR"/>
+ <enum name="GL_EQUIV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_OR_REVERSE"/>
+ <enum name="GL_COPY_INVERTED"/>
+ <enum name="GL_OR_INVERTED"/>
+ <enum name="GL_NAND"/>
+ <enum name="GL_SET"/>
+ <enum name="GL_TEXTURE"/>
+ <enum name="GL_COLOR"/>
+ <enum name="GL_DEPTH"/>
+ <enum name="GL_STENCIL"/>
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_POINT"/>
+ <enum name="GL_LINE"/>
+ <enum name="GL_FILL"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_DECR"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VERSION"/>
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ <enum name="GL_PROXY_TEXTURE_1D"/>
+ <enum name="GL_PROXY_TEXTURE_2D"/>
+ <enum name="GL_REPEAT"/>
+ <enum name="GL_R3_G3_B2"/>
+ <enum name="GL_RGB4"/>
+ <enum name="GL_RGB5"/>
+ <enum name="GL_RGB8"/>
+ <enum name="GL_RGB10"/>
+ <enum name="GL_RGB12"/>
+ <enum name="GL_RGB16"/>
+ <enum name="GL_RGBA2"/>
+ <enum name="GL_RGBA4"/>
+ <enum name="GL_RGB5_A1"/>
+ <enum name="GL_RGBA8"/>
+ <enum name="GL_RGB10_A2"/>
+ <enum name="GL_RGBA12"/>
+ <enum name="GL_RGBA16"/>
+ <enum name="GL_CURRENT_BIT"/>
+ <enum name="GL_POINT_BIT"/>
+ <enum name="GL_LINE_BIT"/>
+ <enum name="GL_POLYGON_BIT"/>
+ <enum name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum name="GL_PIXEL_MODE_BIT"/>
+ <enum name="GL_LIGHTING_BIT"/>
+ <enum name="GL_FOG_BIT"/>
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_VIEWPORT_BIT"/>
+ <enum name="GL_TRANSFORM_BIT"/>
+ <enum name="GL_ENABLE_BIT"/>
+ <enum name="GL_HINT_BIT"/>
+ <enum name="GL_EVAL_BIT"/>
+ <enum name="GL_LIST_BIT"/>
+ <enum name="GL_TEXTURE_BIT"/>
+ <enum name="GL_SCISSOR_BIT"/>
+ <enum name="GL_ALL_ATTRIB_BITS"/>
+ <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ <enum name="GL_QUAD_STRIP"/>
+ <enum name="GL_POLYGON"/>
+ <enum name="GL_ACCUM"/>
+ <enum name="GL_LOAD"/>
+ <enum name="GL_RETURN"/>
+ <enum name="GL_MULT"/>
+ <enum name="GL_ADD"/>
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_2D"/>
+ <enum name="GL_3D"/>
+ <enum name="GL_3D_COLOR"/>
+ <enum name="GL_3D_COLOR_TEXTURE"/>
+ <enum name="GL_4D_COLOR_TEXTURE"/>
+ <enum name="GL_PASS_THROUGH_TOKEN"/>
+ <enum name="GL_POINT_TOKEN"/>
+ <enum name="GL_LINE_TOKEN"/>
+ <enum name="GL_POLYGON_TOKEN"/>
+ <enum name="GL_BITMAP_TOKEN"/>
+ <enum name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum name="GL_COPY_PIXEL_TOKEN"/>
+ <enum name="GL_LINE_RESET_TOKEN"/>
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_COEFF"/>
+ <enum name="GL_ORDER"/>
+ <enum name="GL_DOMAIN"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_INDEX"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_COLOR"/>
+ <enum name="GL_CURRENT_RASTER_INDEX"/>
+ <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_POSITION"/>
+ <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum name="GL_CURRENT_RASTER_DISTANCE"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum name="GL_LINE_STIPPLE_REPEAT"/>
+ <enum name="GL_LIST_MODE"/>
+ <enum name="GL_MAX_LIST_NESTING"/>
+ <enum name="GL_LIST_BASE"/>
+ <enum name="GL_LIST_INDEX"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_EDGE_FLAG"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_COLOR_MATERIAL_FACE"/>
+ <enum name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_ACCUM_CLEAR_VALUE"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_AUX_BUFFERS"/>
+ <enum name="GL_INDEX_CLEAR_VALUE"/>
+ <enum name="GL_INDEX_WRITEMASK"/>
+ <enum name="GL_INDEX_MODE"/>
+ <enum name="GL_RGBA_MODE"/>
+ <enum name="GL_RENDER_MODE"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_RED_SCALE"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_ZOOM_X"/>
+ <enum name="GL_ZOOM_Y"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_MAX_EVAL_ORDER"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_INDEX_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_ACCUM_RED_BITS"/>
+ <enum name="GL_ACCUM_GREEN_BITS"/>
+ <enum name="GL_ACCUM_BLUE_BITS"/>
+ <enum name="GL_ACCUM_ALPHA_BITS"/>
+ <enum name="GL_NAME_STACK_DEPTH"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MAP1_GRID_DOMAIN"/>
+ <enum name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum name="GL_MAP2_GRID_DOMAIN"/>
+ <enum name="GL_MAP2_GRID_SEGMENTS"/>
+ <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum name="GL_SELECTION_BUFFER_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_INDEX_ARRAY_TYPE"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COMPONENTS"/>
+ <enum name="GL_TEXTURE_BORDER"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_RESIDENT"/>
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_COMPILE"/>
+ <enum name="GL_COMPILE_AND_EXECUTE"/>
+ <enum name="GL_2_BYTES"/>
+ <enum name="GL_3_BYTES"/>
+ <enum name="GL_4_BYTES"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_COLOR_INDEXES"/>
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_COLOR_INDEX"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_BITMAP"/>
+ <enum name="GL_RENDER"/>
+ <enum name="GL_FEEDBACK"/>
+ <enum name="GL_SELECT"/>
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ <enum name="GL_S"/>
+ <enum name="GL_T"/>
+ <enum name="GL_R"/>
+ <enum name="GL_Q"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV"/>
+ <enum name="GL_EYE_LINEAR"/>
+ <enum name="GL_OBJECT_LINEAR"/>
+ <enum name="GL_SPHERE_MAP"/>
+ <enum name="GL_TEXTURE_GEN_MODE"/>
+ <enum name="GL_OBJECT_PLANE"/>
+ <enum name="GL_EYE_PLANE"/>
+ <enum name="GL_CLAMP"/>
+ <enum name="GL_ALPHA4"/>
+ <enum name="GL_ALPHA8"/>
+ <enum name="GL_ALPHA12"/>
+ <enum name="GL_ALPHA16"/>
+ <enum name="GL_LUMINANCE4"/>
+ <enum name="GL_LUMINANCE8"/>
+ <enum name="GL_LUMINANCE12"/>
+ <enum name="GL_LUMINANCE16"/>
+ <enum name="GL_LUMINANCE4_ALPHA4"/>
+ <enum name="GL_LUMINANCE6_ALPHA2"/>
+ <enum name="GL_LUMINANCE8_ALPHA8"/>
+ <enum name="GL_LUMINANCE12_ALPHA4"/>
+ <enum name="GL_LUMINANCE12_ALPHA12"/>
+ <enum name="GL_LUMINANCE16_ALPHA16"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_INTENSITY4"/>
+ <enum name="GL_INTENSITY8"/>
+ <enum name="GL_INTENSITY12"/>
+ <enum name="GL_INTENSITY16"/>
+ <enum name="GL_V2F"/>
+ <enum name="GL_V3F"/>
+ <enum name="GL_C4UB_V2F"/>
+ <enum name="GL_C4UB_V3F"/>
+ <enum name="GL_C3F_V3F"/>
+ <enum name="GL_N3F_V3F"/>
+ <enum name="GL_C4F_N3F_V3F"/>
+ <enum name="GL_T2F_V3F"/>
+ <enum name="GL_T4F_V4F"/>
+ <enum name="GL_T2F_C4UB_V3F"/>
+ <enum name="GL_T2F_C3F_V3F"/>
+ <enum name="GL_T2F_N3F_V3F"/>
+ <enum name="GL_T2F_C4F_N3F_V3F"/>
+ <enum name="GL_T4F_C4F_N3F_V4F"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <command name="glDrawArrays"/>
+ <command name="glDrawElements"/>
+ <command name="glGetPointerv"/>
+ <command name="glPolygonOffset"/>
+ <command name="glCopyTexImage1D"/>
+ <command name="glCopyTexImage2D"/>
+ <command name="glCopyTexSubImage1D"/>
+ <command name="glCopyTexSubImage2D"/>
+ <command name="glTexSubImage1D"/>
+ <command name="glTexSubImage2D"/>
+ <command name="glBindTexture"/>
+ <command name="glDeleteTextures"/>
+ <command name="glGenTextures"/>
+ <command name="glIsTexture"/>
+ <command name="glArrayElement"/>
+ <command name="glColorPointer"/>
+ <command name="glDisableClientState"/>
+ <command name="glEdgeFlagPointer"/>
+ <command name="glEnableClientState"/>
+ <command name="glIndexPointer"/>
+ <command name="glInterleavedArrays"/>
+ <command name="glNormalPointer"/>
+ <command name="glTexCoordPointer"/>
+ <command name="glVertexPointer"/>
+ <command name="glAreTexturesResident"/>
+ <command name="glPrioritizeTextures"/>
+ <command name="glIndexub"/>
+ <command name="glIndexubv"/>
+ <command name="glPopClientAttrib"/>
+ <command name="glPushClientAttrib"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_2" number="1.2">
+ <require>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_PACK_SKIP_IMAGES"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_PROXY_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_DEPTH"/>
+ <enum name="GL_TEXTURE_WRAP_R"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE"/>
+ <enum name="GL_UNSIGNED_BYTE_2_3_3_REV"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5_REV"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_REV"/>
+ <enum name="GL_UNSIGNED_SHORT_1_5_5_5_REV"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8_REV"/>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum name="GL_BGR"/>
+ <enum name="GL_BGRA"/>
+ <enum name="GL_MAX_ELEMENTS_VERTICES"/>
+ <enum name="GL_MAX_ELEMENTS_INDICES"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_TEXTURE_MIN_LOD"/>
+ <enum name="GL_TEXTURE_MAX_LOD"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_RANGE"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_RANGE"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_RESCALE_NORMAL"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_SINGLE_COLOR"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <command name="glDrawRangeElements"/>
+ <command name="glTexImage3D"/>
+ <command name="glTexSubImage3D"/>
+ <command name="glCopyTexSubImage3D"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_3" number="1.3">
+ <require>
+ <enum name="GL_TEXTURE0"/>
+ <enum name="GL_TEXTURE1"/>
+ <enum name="GL_TEXTURE2"/>
+ <enum name="GL_TEXTURE3"/>
+ <enum name="GL_TEXTURE4"/>
+ <enum name="GL_TEXTURE5"/>
+ <enum name="GL_TEXTURE6"/>
+ <enum name="GL_TEXTURE7"/>
+ <enum name="GL_TEXTURE8"/>
+ <enum name="GL_TEXTURE9"/>
+ <enum name="GL_TEXTURE10"/>
+ <enum name="GL_TEXTURE11"/>
+ <enum name="GL_TEXTURE12"/>
+ <enum name="GL_TEXTURE13"/>
+ <enum name="GL_TEXTURE14"/>
+ <enum name="GL_TEXTURE15"/>
+ <enum name="GL_TEXTURE16"/>
+ <enum name="GL_TEXTURE17"/>
+ <enum name="GL_TEXTURE18"/>
+ <enum name="GL_TEXTURE19"/>
+ <enum name="GL_TEXTURE20"/>
+ <enum name="GL_TEXTURE21"/>
+ <enum name="GL_TEXTURE22"/>
+ <enum name="GL_TEXTURE23"/>
+ <enum name="GL_TEXTURE24"/>
+ <enum name="GL_TEXTURE25"/>
+ <enum name="GL_TEXTURE26"/>
+ <enum name="GL_TEXTURE27"/>
+ <enum name="GL_TEXTURE28"/>
+ <enum name="GL_TEXTURE29"/>
+ <enum name="GL_TEXTURE30"/>
+ <enum name="GL_TEXTURE31"/>
+ <enum name="GL_ACTIVE_TEXTURE"/>
+ <enum name="GL_MULTISAMPLE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <enum name="GL_SAMPLE_COVERAGE"/>
+ <enum name="GL_SAMPLE_BUFFERS"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+ <enum name="GL_COMPRESSED_RGB"/>
+ <enum name="GL_COMPRESSED_RGBA"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT"/>
+ <enum name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE"/>
+ <enum name="GL_TEXTURE_COMPRESSED"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_CLAMP_TO_BORDER"/>
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum name="GL_MAX_TEXTURE_UNITS"/>
+ <enum name="GL_TRANSPOSE_MODELVIEW_MATRIX"/>
+ <enum name="GL_TRANSPOSE_PROJECTION_MATRIX"/>
+ <enum name="GL_TRANSPOSE_TEXTURE_MATRIX"/>
+ <enum name="GL_TRANSPOSE_COLOR_MATRIX"/>
+ <enum name="GL_MULTISAMPLE_BIT"/>
+ <enum name="GL_NORMAL_MAP"/>
+ <enum name="GL_REFLECTION_MAP"/>
+ <enum name="GL_COMPRESSED_ALPHA"/>
+ <enum name="GL_COMPRESSED_LUMINANCE"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA"/>
+ <enum name="GL_COMPRESSED_INTENSITY"/>
+ <enum name="GL_COMBINE"/>
+ <enum name="GL_COMBINE_RGB"/>
+ <enum name="GL_COMBINE_ALPHA"/>
+ <enum name="GL_SOURCE0_RGB"/>
+ <enum name="GL_SOURCE1_RGB"/>
+ <enum name="GL_SOURCE2_RGB"/>
+ <enum name="GL_SOURCE0_ALPHA"/>
+ <enum name="GL_SOURCE1_ALPHA"/>
+ <enum name="GL_SOURCE2_ALPHA"/>
+ <enum name="GL_OPERAND0_RGB"/>
+ <enum name="GL_OPERAND1_RGB"/>
+ <enum name="GL_OPERAND2_RGB"/>
+ <enum name="GL_OPERAND0_ALPHA"/>
+ <enum name="GL_OPERAND1_ALPHA"/>
+ <enum name="GL_OPERAND2_ALPHA"/>
+ <enum name="GL_RGB_SCALE"/>
+ <enum name="GL_ADD_SIGNED"/>
+ <enum name="GL_INTERPOLATE"/>
+ <enum name="GL_SUBTRACT"/>
+ <enum name="GL_CONSTANT"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PREVIOUS"/>
+ <enum name="GL_DOT3_RGB"/>
+ <enum name="GL_DOT3_RGBA"/>
+ <command name="glActiveTexture"/>
+ <command name="glSampleCoverage"/>
+ <command name="glCompressedTexImage3D"/>
+ <command name="glCompressedTexImage2D"/>
+ <command name="glCompressedTexImage1D"/>
+ <command name="glCompressedTexSubImage3D"/>
+ <command name="glCompressedTexSubImage2D"/>
+ <command name="glCompressedTexSubImage1D"/>
+ <command name="glGetCompressedTexImage"/>
+ <command name="glClientActiveTexture"/>
+ <command name="glMultiTexCoord1d"/>
+ <command name="glMultiTexCoord1dv"/>
+ <command name="glMultiTexCoord1f"/>
+ <command name="glMultiTexCoord1fv"/>
+ <command name="glMultiTexCoord1i"/>
+ <command name="glMultiTexCoord1iv"/>
+ <command name="glMultiTexCoord1s"/>
+ <command name="glMultiTexCoord1sv"/>
+ <command name="glMultiTexCoord2d"/>
+ <command name="glMultiTexCoord2dv"/>
+ <command name="glMultiTexCoord2f"/>
+ <command name="glMultiTexCoord2fv"/>
+ <command name="glMultiTexCoord2i"/>
+ <command name="glMultiTexCoord2iv"/>
+ <command name="glMultiTexCoord2s"/>
+ <command name="glMultiTexCoord2sv"/>
+ <command name="glMultiTexCoord3d"/>
+ <command name="glMultiTexCoord3dv"/>
+ <command name="glMultiTexCoord3f"/>
+ <command name="glMultiTexCoord3fv"/>
+ <command name="glMultiTexCoord3i"/>
+ <command name="glMultiTexCoord3iv"/>
+ <command name="glMultiTexCoord3s"/>
+ <command name="glMultiTexCoord3sv"/>
+ <command name="glMultiTexCoord4d"/>
+ <command name="glMultiTexCoord4dv"/>
+ <command name="glMultiTexCoord4f"/>
+ <command name="glMultiTexCoord4fv"/>
+ <command name="glMultiTexCoord4i"/>
+ <command name="glMultiTexCoord4iv"/>
+ <command name="glMultiTexCoord4s"/>
+ <command name="glMultiTexCoord4sv"/>
+ <command name="glLoadTransposeMatrixf"/>
+ <command name="glLoadTransposeMatrixd"/>
+ <command name="glMultTransposeMatrixf"/>
+ <command name="glMultTransposeMatrixd"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_4" number="1.4">
+ <require>
+ <enum name="GL_BLEND_DST_RGB"/>
+ <enum name="GL_BLEND_SRC_RGB"/>
+ <enum name="GL_BLEND_DST_ALPHA"/>
+ <enum name="GL_BLEND_SRC_ALPHA"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum name="GL_DEPTH_COMPONENT16"/>
+ <enum name="GL_DEPTH_COMPONENT24"/>
+ <enum name="GL_DEPTH_COMPONENT32"/>
+ <enum name="GL_MIRRORED_REPEAT"/>
+ <enum name="GL_MAX_TEXTURE_LOD_BIAS"/>
+ <enum name="GL_TEXTURE_LOD_BIAS"/>
+ <enum name="GL_INCR_WRAP"/>
+ <enum name="GL_DECR_WRAP"/>
+ <enum name="GL_TEXTURE_DEPTH_SIZE"/>
+ <enum name="GL_TEXTURE_COMPARE_MODE"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC"/>
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_FOG_COORDINATE_SOURCE"/>
+ <enum name="GL_FOG_COORDINATE"/>
+ <enum name="GL_FRAGMENT_DEPTH"/>
+ <enum name="GL_CURRENT_FOG_COORDINATE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY"/>
+ <enum name="GL_COLOR_SUM"/>
+ <enum name="GL_CURRENT_SECONDARY_COLOR"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY"/>
+ <enum name="GL_TEXTURE_FILTER_CONTROL"/>
+ <enum name="GL_DEPTH_TEXTURE_MODE"/>
+ <enum name="GL_COMPARE_R_TO_TEXTURE"/>
+ <command name="glBlendFuncSeparate"/>
+ <command name="glMultiDrawArrays"/>
+ <command name="glMultiDrawElements"/>
+ <command name="glPointParameterf"/>
+ <command name="glPointParameterfv"/>
+ <command name="glPointParameteri"/>
+ <command name="glPointParameteriv"/>
+ <command name="glFogCoordf"/>
+ <command name="glFogCoordfv"/>
+ <command name="glFogCoordd"/>
+ <command name="glFogCoorddv"/>
+ <command name="glFogCoordPointer"/>
+ <command name="glSecondaryColor3b"/>
+ <command name="glSecondaryColor3bv"/>
+ <command name="glSecondaryColor3d"/>
+ <command name="glSecondaryColor3dv"/>
+ <command name="glSecondaryColor3f"/>
+ <command name="glSecondaryColor3fv"/>
+ <command name="glSecondaryColor3i"/>
+ <command name="glSecondaryColor3iv"/>
+ <command name="glSecondaryColor3s"/>
+ <command name="glSecondaryColor3sv"/>
+ <command name="glSecondaryColor3ub"/>
+ <command name="glSecondaryColor3ubv"/>
+ <command name="glSecondaryColor3ui"/>
+ <command name="glSecondaryColor3uiv"/>
+ <command name="glSecondaryColor3us"/>
+ <command name="glSecondaryColor3usv"/>
+ <command name="glSecondaryColorPointer"/>
+ <command name="glWindowPos2d"/>
+ <command name="glWindowPos2dv"/>
+ <command name="glWindowPos2f"/>
+ <command name="glWindowPos2fv"/>
+ <command name="glWindowPos2i"/>
+ <command name="glWindowPos2iv"/>
+ <command name="glWindowPos2s"/>
+ <command name="glWindowPos2sv"/>
+ <command name="glWindowPos3d"/>
+ <command name="glWindowPos3dv"/>
+ <command name="glWindowPos3f"/>
+ <command name="glWindowPos3fv"/>
+ <command name="glWindowPos3i"/>
+ <command name="glWindowPos3iv"/>
+ <command name="glWindowPos3s"/>
+ <command name="glWindowPos3sv"/>
+ </require>
+ <require comment="Promoted from ARB_imaging subset to core">
+ <enum name="GL_FUNC_ADD"/>
+ <enum name="GL_FUNC_SUBTRACT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <enum name="GL_MIN"/>
+ <enum name="GL_MAX"/>
+ <enum name="GL_CONSTANT_COLOR"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum name="GL_CONSTANT_ALPHA"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <command name="glBlendColor"/>
+ <command name="glBlendEquation"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_5" number="1.5">
+ <require>
+ <enum name="GL_BUFFER_SIZE"/>
+ <enum name="GL_BUFFER_USAGE"/>
+ <enum name="GL_QUERY_COUNTER_BITS"/>
+ <enum name="GL_CURRENT_QUERY"/>
+ <enum name="GL_QUERY_RESULT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE"/>
+ <enum name="GL_ARRAY_BUFFER"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_READ_ONLY"/>
+ <enum name="GL_WRITE_ONLY"/>
+ <enum name="GL_READ_WRITE"/>
+ <enum name="GL_BUFFER_ACCESS"/>
+ <enum name="GL_BUFFER_MAPPED"/>
+ <enum name="GL_BUFFER_MAP_POINTER"/>
+ <enum name="GL_STREAM_DRAW"/>
+ <enum name="GL_STREAM_READ"/>
+ <enum name="GL_STREAM_COPY"/>
+ <enum name="GL_STATIC_DRAW"/>
+ <enum name="GL_STATIC_READ"/>
+ <enum name="GL_STATIC_COPY"/>
+ <enum name="GL_DYNAMIC_DRAW"/>
+ <enum name="GL_DYNAMIC_READ"/>
+ <enum name="GL_DYNAMIC_COPY"/>
+ <enum name="GL_SAMPLES_PASSED"/>
+ <enum name="GL_SRC1_ALPHA"/>
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_INDEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORD_SRC"/>
+ <enum name="GL_FOG_COORD"/>
+ <enum name="GL_CURRENT_FOG_COORD"/>
+ <enum name="GL_FOG_COORD_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORD_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORD_ARRAY"/>
+ <enum name="GL_FOG_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SRC0_RGB"/>
+ <enum name="GL_SRC1_RGB"/>
+ <enum name="GL_SRC2_RGB"/>
+ <enum name="GL_SRC0_ALPHA"/>
+ <enum name="GL_SRC2_ALPHA"/>
+ <command name="glGenQueries"/>
+ <command name="glDeleteQueries"/>
+ <command name="glIsQuery"/>
+ <command name="glBeginQuery"/>
+ <command name="glEndQuery"/>
+ <command name="glGetQueryiv"/>
+ <command name="glGetQueryObjectiv"/>
+ <command name="glGetQueryObjectuiv"/>
+ <command name="glBindBuffer"/>
+ <command name="glDeleteBuffers"/>
+ <command name="glGenBuffers"/>
+ <command name="glIsBuffer"/>
+ <command name="glBufferData"/>
+ <command name="glBufferSubData"/>
+ <command name="glGetBufferSubData"/>
+ <command name="glMapBuffer"/>
+ <command name="glUnmapBuffer"/>
+ <command name="glGetBufferParameteriv"/>
+ <command name="glGetBufferPointerv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_2_0" number="2.0">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ <enum name="GL_STENCIL_BACK_FUNC"/>
+ <enum name="GL_STENCIL_BACK_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+ <enum name="GL_MAX_DRAW_BUFFERS"/>
+ <enum name="GL_DRAW_BUFFER0"/>
+ <enum name="GL_DRAW_BUFFER1"/>
+ <enum name="GL_DRAW_BUFFER2"/>
+ <enum name="GL_DRAW_BUFFER3"/>
+ <enum name="GL_DRAW_BUFFER4"/>
+ <enum name="GL_DRAW_BUFFER5"/>
+ <enum name="GL_DRAW_BUFFER6"/>
+ <enum name="GL_DRAW_BUFFER7"/>
+ <enum name="GL_DRAW_BUFFER8"/>
+ <enum name="GL_DRAW_BUFFER9"/>
+ <enum name="GL_DRAW_BUFFER10"/>
+ <enum name="GL_DRAW_BUFFER11"/>
+ <enum name="GL_DRAW_BUFFER12"/>
+ <enum name="GL_DRAW_BUFFER13"/>
+ <enum name="GL_DRAW_BUFFER14"/>
+ <enum name="GL_DRAW_BUFFER15"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_FRAGMENT_SHADER"/>
+ <enum name="GL_VERTEX_SHADER"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_VARYING_FLOATS"/>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_SHADER_TYPE"/>
+ <enum name="GL_FLOAT_VEC2"/>
+ <enum name="GL_FLOAT_VEC3"/>
+ <enum name="GL_FLOAT_VEC4"/>
+ <enum name="GL_INT_VEC2"/>
+ <enum name="GL_INT_VEC3"/>
+ <enum name="GL_INT_VEC4"/>
+ <enum name="GL_BOOL"/>
+ <enum name="GL_BOOL_VEC2"/>
+ <enum name="GL_BOOL_VEC3"/>
+ <enum name="GL_BOOL_VEC4"/>
+ <enum name="GL_FLOAT_MAT2"/>
+ <enum name="GL_FLOAT_MAT3"/>
+ <enum name="GL_FLOAT_MAT4"/>
+ <enum name="GL_SAMPLER_1D"/>
+ <enum name="GL_SAMPLER_2D"/>
+ <enum name="GL_SAMPLER_3D"/>
+ <enum name="GL_SAMPLER_CUBE"/>
+ <enum name="GL_SAMPLER_1D_SHADOW"/>
+ <enum name="GL_SAMPLER_2D_SHADOW"/>
+ <enum name="GL_DELETE_STATUS"/>
+ <enum name="GL_COMPILE_STATUS"/>
+ <enum name="GL_LINK_STATUS"/>
+ <enum name="GL_VALIDATE_STATUS"/>
+ <enum name="GL_INFO_LOG_LENGTH"/>
+ <enum name="GL_ATTACHED_SHADERS"/>
+ <enum name="GL_ACTIVE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_SHADER_SOURCE_LENGTH"/>
+ <enum name="GL_ACTIVE_ATTRIBUTES"/>
+ <enum name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum name="GL_SHADING_LANGUAGE_VERSION"/>
+ <enum name="GL_CURRENT_PROGRAM"/>
+ <enum name="GL_POINT_SPRITE_COORD_ORIGIN"/>
+ <enum name="GL_LOWER_LEFT"/>
+ <enum name="GL_UPPER_LEFT"/>
+ <enum name="GL_STENCIL_BACK_REF"/>
+ <enum name="GL_STENCIL_BACK_VALUE_MASK"/>
+ <enum name="GL_STENCIL_BACK_WRITEMASK"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
+ <enum name="GL_POINT_SPRITE"/>
+ <enum name="GL_COORD_REPLACE"/>
+ <enum name="GL_MAX_TEXTURE_COORDS"/>
+ <command name="glBlendEquationSeparate"/>
+ <command name="glDrawBuffers"/>
+ <command name="glStencilOpSeparate"/>
+ <command name="glStencilFuncSeparate"/>
+ <command name="glStencilMaskSeparate"/>
+ <command name="glAttachShader"/>
+ <command name="glBindAttribLocation"/>
+ <command name="glCompileShader"/>
+ <command name="glCreateProgram"/>
+ <command name="glCreateShader"/>
+ <command name="glDeleteProgram"/>
+ <command name="glDeleteShader"/>
+ <command name="glDetachShader"/>
+ <command name="glDisableVertexAttribArray"/>
+ <command name="glEnableVertexAttribArray"/>
+ <command name="glGetActiveAttrib"/>
+ <command name="glGetActiveUniform"/>
+ <command name="glGetAttachedShaders"/>
+ <command name="glGetAttribLocation"/>
+ <command name="glGetProgramiv"/>
+ <command name="glGetProgramInfoLog"/>
+ <command name="glGetShaderiv"/>
+ <command name="glGetShaderInfoLog"/>
+ <command name="glGetShaderSource"/>
+ <command name="glGetUniformLocation"/>
+ <command name="glGetUniformfv"/>
+ <command name="glGetUniformiv"/>
+ <command name="glGetVertexAttribdv"/>
+ <command name="glGetVertexAttribfv"/>
+ <command name="glGetVertexAttribiv"/>
+ <command name="glGetVertexAttribPointerv"/>
+ <command name="glIsProgram"/>
+ <command name="glIsShader"/>
+ <command name="glLinkProgram"/>
+ <command name="glShaderSource"/>
+ <command name="glUseProgram"/>
+ <command name="glUniform1f"/>
+ <command name="glUniform2f"/>
+ <command name="glUniform3f"/>
+ <command name="glUniform4f"/>
+ <command name="glUniform1i"/>
+ <command name="glUniform2i"/>
+ <command name="glUniform3i"/>
+ <command name="glUniform4i"/>
+ <command name="glUniform1fv"/>
+ <command name="glUniform2fv"/>
+ <command name="glUniform3fv"/>
+ <command name="glUniform4fv"/>
+ <command name="glUniform1iv"/>
+ <command name="glUniform2iv"/>
+ <command name="glUniform3iv"/>
+ <command name="glUniform4iv"/>
+ <command name="glUniformMatrix2fv"/>
+ <command name="glUniformMatrix3fv"/>
+ <command name="glUniformMatrix4fv"/>
+ <command name="glValidateProgram"/>
+ <command name="glVertexAttrib1d"/>
+ <command name="glVertexAttrib1dv"/>
+ <command name="glVertexAttrib1f"/>
+ <command name="glVertexAttrib1fv"/>
+ <command name="glVertexAttrib1s"/>
+ <command name="glVertexAttrib1sv"/>
+ <command name="glVertexAttrib2d"/>
+ <command name="glVertexAttrib2dv"/>
+ <command name="glVertexAttrib2f"/>
+ <command name="glVertexAttrib2fv"/>
+ <command name="glVertexAttrib2s"/>
+ <command name="glVertexAttrib2sv"/>
+ <command name="glVertexAttrib3d"/>
+ <command name="glVertexAttrib3dv"/>
+ <command name="glVertexAttrib3f"/>
+ <command name="glVertexAttrib3fv"/>
+ <command name="glVertexAttrib3s"/>
+ <command name="glVertexAttrib3sv"/>
+ <command name="glVertexAttrib4Nbv"/>
+ <command name="glVertexAttrib4Niv"/>
+ <command name="glVertexAttrib4Nsv"/>
+ <command name="glVertexAttrib4Nub"/>
+ <command name="glVertexAttrib4Nubv"/>
+ <command name="glVertexAttrib4Nuiv"/>
+ <command name="glVertexAttrib4Nusv"/>
+ <command name="glVertexAttrib4bv"/>
+ <command name="glVertexAttrib4d"/>
+ <command name="glVertexAttrib4dv"/>
+ <command name="glVertexAttrib4f"/>
+ <command name="glVertexAttrib4fv"/>
+ <command name="glVertexAttrib4iv"/>
+ <command name="glVertexAttrib4s"/>
+ <command name="glVertexAttrib4sv"/>
+ <command name="glVertexAttrib4ubv"/>
+ <command name="glVertexAttrib4uiv"/>
+ <command name="glVertexAttrib4usv"/>
+ <command name="glVertexAttribPointer"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_2_1" number="2.1">
+ <require>
+ <enum name="GL_PIXEL_PACK_BUFFER"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+ <enum name="GL_FLOAT_MAT2x3"/>
+ <enum name="GL_FLOAT_MAT2x4"/>
+ <enum name="GL_FLOAT_MAT3x2"/>
+ <enum name="GL_FLOAT_MAT3x4"/>
+ <enum name="GL_FLOAT_MAT4x2"/>
+ <enum name="GL_FLOAT_MAT4x3"/>
+ <enum name="GL_SRGB"/>
+ <enum name="GL_SRGB8"/>
+ <enum name="GL_SRGB_ALPHA"/>
+ <enum name="GL_SRGB8_ALPHA8"/>
+ <enum name="GL_COMPRESSED_SRGB"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA"/>
+ <enum name="GL_CURRENT_RASTER_SECONDARY_COLOR"/>
+ <enum name="GL_SLUMINANCE_ALPHA"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8"/>
+ <enum name="GL_SLUMINANCE"/>
+ <enum name="GL_SLUMINANCE8"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
+ <command name="glUniformMatrix2x3fv"/>
+ <command name="glUniformMatrix3x2fv"/>
+ <command name="glUniformMatrix2x4fv"/>
+ <command name="glUniformMatrix4x2fv"/>
+ <command name="glUniformMatrix3x4fv"/>
+ <command name="glUniformMatrix4x3fv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_0" number="3.0">
+ <require>
+ <enum name="GL_COMPARE_REF_TO_TEXTURE"/>
+ <enum name="GL_CLIP_DISTANCE0"/>
+ <enum name="GL_CLIP_DISTANCE1"/>
+ <enum name="GL_CLIP_DISTANCE2"/>
+ <enum name="GL_CLIP_DISTANCE3"/>
+ <enum name="GL_CLIP_DISTANCE4"/>
+ <enum name="GL_CLIP_DISTANCE5"/>
+ <enum name="GL_CLIP_DISTANCE6"/>
+ <enum name="GL_CLIP_DISTANCE7"/>
+ <enum name="GL_MAX_CLIP_DISTANCES"/>
+ <enum name="GL_MAJOR_VERSION"/>
+ <enum name="GL_MINOR_VERSION"/>
+ <enum name="GL_NUM_EXTENSIONS"/>
+ <enum name="GL_CONTEXT_FLAGS"/>
+ <enum name="GL_COMPRESSED_RED"/>
+ <enum name="GL_COMPRESSED_RG"/>
+ <enum name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
+ <enum name="GL_RGBA32F"/>
+ <enum name="GL_RGB32F"/>
+ <enum name="GL_RGBA16F"/>
+ <enum name="GL_RGB16F"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
+ <enum name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_CLAMP_READ_COLOR"/>
+ <enum name="GL_FIXED_ONLY"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ <enum name="GL_TEXTURE_1D_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum name="GL_R11F_G11F_B10F"/>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ <enum name="GL_RGB9_E5"/>
+ <enum name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
+ <enum name="GL_TEXTURE_SHARED_SIZE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_PRIMITIVES_GENERATED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+ <enum name="GL_RASTERIZER_DISCARD"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS"/>
+ <enum name="GL_SEPARATE_ATTRIBS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+ <enum name="GL_RGBA32UI"/>
+ <enum name="GL_RGB32UI"/>
+ <enum name="GL_RGBA16UI"/>
+ <enum name="GL_RGB16UI"/>
+ <enum name="GL_RGBA8UI"/>
+ <enum name="GL_RGB8UI"/>
+ <enum name="GL_RGBA32I"/>
+ <enum name="GL_RGB32I"/>
+ <enum name="GL_RGBA16I"/>
+ <enum name="GL_RGB16I"/>
+ <enum name="GL_RGBA8I"/>
+ <enum name="GL_RGB8I"/>
+ <enum name="GL_RED_INTEGER"/>
+ <enum name="GL_GREEN_INTEGER"/>
+ <enum name="GL_BLUE_INTEGER"/>
+ <enum name="GL_RGB_INTEGER"/>
+ <enum name="GL_RGBA_INTEGER"/>
+ <enum name="GL_BGR_INTEGER"/>
+ <enum name="GL_BGRA_INTEGER"/>
+ <enum name="GL_SAMPLER_1D_ARRAY"/>
+ <enum name="GL_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_SAMPLER_1D_ARRAY_SHADOW"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+ <enum name="GL_SAMPLER_CUBE_SHADOW"/>
+ <enum name="GL_UNSIGNED_INT_VEC2"/>
+ <enum name="GL_UNSIGNED_INT_VEC3"/>
+ <enum name="GL_UNSIGNED_INT_VEC4"/>
+ <enum name="GL_INT_SAMPLER_1D"/>
+ <enum name="GL_INT_SAMPLER_2D"/>
+ <enum name="GL_INT_SAMPLER_3D"/>
+ <enum name="GL_INT_SAMPLER_CUBE"/>
+ <enum name="GL_INT_SAMPLER_1D_ARRAY"/>
+ <enum name="GL_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_QUERY_WAIT"/>
+ <enum name="GL_QUERY_NO_WAIT"/>
+ <enum name="GL_QUERY_BY_REGION_WAIT"/>
+ <enum name="GL_QUERY_BY_REGION_NO_WAIT"/>
+ <enum name="GL_BUFFER_ACCESS_FLAGS"/>
+ <enum name="GL_BUFFER_MAP_LENGTH"/>
+ <enum name="GL_BUFFER_MAP_OFFSET"/>
+ <command name="glColorMaski"/>
+ <command name="glGetBooleani_v"/>
+ <command name="glGetIntegeri_v"/>
+ <command name="glEnablei"/>
+ <command name="glDisablei"/>
+ <command name="glIsEnabledi"/>
+ <command name="glBeginTransformFeedback"/>
+ <command name="glEndTransformFeedback"/>
+ <command name="glBindBufferRange"/>
+ <command name="glBindBufferBase"/>
+ <command name="glTransformFeedbackVaryings"/>
+ <command name="glGetTransformFeedbackVarying"/>
+ <command name="glClampColor"/>
+ <command name="glBeginConditionalRender"/>
+ <command name="glEndConditionalRender"/>
+ <command name="glVertexAttribIPointer"/>
+ <command name="glGetVertexAttribIiv"/>
+ <command name="glGetVertexAttribIuiv"/>
+ <command name="glVertexAttribI1i"/>
+ <command name="glVertexAttribI2i"/>
+ <command name="glVertexAttribI3i"/>
+ <command name="glVertexAttribI4i"/>
+ <command name="glVertexAttribI1ui"/>
+ <command name="glVertexAttribI2ui"/>
+ <command name="glVertexAttribI3ui"/>
+ <command name="glVertexAttribI4ui"/>
+ <command name="glVertexAttribI1iv"/>
+ <command name="glVertexAttribI2iv"/>
+ <command name="glVertexAttribI3iv"/>
+ <command name="glVertexAttribI4iv"/>
+ <command name="glVertexAttribI1uiv"/>
+ <command name="glVertexAttribI2uiv"/>
+ <command name="glVertexAttribI3uiv"/>
+ <command name="glVertexAttribI4uiv"/>
+ <command name="glVertexAttribI4bv"/>
+ <command name="glVertexAttribI4sv"/>
+ <command name="glVertexAttribI4ubv"/>
+ <command name="glVertexAttribI4usv"/>
+ <command name="glGetUniformuiv"/>
+ <command name="glBindFragDataLocation"/>
+ <command name="glGetFragDataLocation"/>
+ <command name="glUniform1ui"/>
+ <command name="glUniform2ui"/>
+ <command name="glUniform3ui"/>
+ <command name="glUniform4ui"/>
+ <command name="glUniform1uiv"/>
+ <command name="glUniform2uiv"/>
+ <command name="glUniform3uiv"/>
+ <command name="glUniform4uiv"/>
+ <command name="glTexParameterIiv"/>
+ <command name="glTexParameterIuiv"/>
+ <command name="glGetTexParameterIiv"/>
+ <command name="glGetTexParameterIuiv"/>
+ <command name="glClearBufferiv"/>
+ <command name="glClearBufferuiv"/>
+ <command name="glClearBufferfv"/>
+ <command name="glClearBufferfi"/>
+ <command name="glGetStringi"/>
+ </require>
+ <require comment="Reuse ARB_depth_buffer_float">
+ <enum name="GL_DEPTH_COMPONENT32F"/>
+ <enum name="GL_DEPTH32F_STENCIL8"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ </require>
+ <require comment="Reuse ARB_framebuffer_object">
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum name="GL_DEPTH_STENCIL"/>
+ <enum name="GL_UNSIGNED_INT_24_8"/>
+ <enum name="GL_DEPTH24_STENCIL8"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum name="GL_TEXTURE_RED_TYPE"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum name="GL_UNSIGNED_NORMALIZED"/>
+ <enum name="GL_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_BINDING"/>
+ <enum name="GL_READ_FRAMEBUFFER"/>
+ <enum name="GL_DRAW_FRAMEBUFFER"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum name="GL_COLOR_ATTACHMENT0"/>
+ <enum name="GL_COLOR_ATTACHMENT1"/>
+ <enum name="GL_COLOR_ATTACHMENT2"/>
+ <enum name="GL_COLOR_ATTACHMENT3"/>
+ <enum name="GL_COLOR_ATTACHMENT4"/>
+ <enum name="GL_COLOR_ATTACHMENT5"/>
+ <enum name="GL_COLOR_ATTACHMENT6"/>
+ <enum name="GL_COLOR_ATTACHMENT7"/>
+ <enum name="GL_COLOR_ATTACHMENT8"/>
+ <enum name="GL_COLOR_ATTACHMENT9"/>
+ <enum name="GL_COLOR_ATTACHMENT10"/>
+ <enum name="GL_COLOR_ATTACHMENT11"/>
+ <enum name="GL_COLOR_ATTACHMENT12"/>
+ <enum name="GL_COLOR_ATTACHMENT13"/>
+ <enum name="GL_COLOR_ATTACHMENT14"/>
+ <enum name="GL_COLOR_ATTACHMENT15"/>
+ <enum name="GL_DEPTH_ATTACHMENT"/>
+ <enum name="GL_STENCIL_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_RENDERBUFFER_WIDTH"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum name="GL_STENCIL_INDEX1"/>
+ <enum name="GL_STENCIL_INDEX4"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_STENCIL_INDEX16"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLES"/>
+ <command name="glIsRenderbuffer"/>
+ <command name="glBindRenderbuffer"/>
+ <command name="glDeleteRenderbuffers"/>
+ <command name="glGenRenderbuffers"/>
+ <command name="glRenderbufferStorage"/>
+ <command name="glGetRenderbufferParameteriv"/>
+ <command name="glIsFramebuffer"/>
+ <command name="glBindFramebuffer"/>
+ <command name="glDeleteFramebuffers"/>
+ <command name="glGenFramebuffers"/>
+ <command name="glCheckFramebufferStatus"/>
+ <command name="glFramebufferTexture1D"/>
+ <command name="glFramebufferTexture2D"/>
+ <command name="glFramebufferTexture3D"/>
+ <command name="glFramebufferRenderbuffer"/>
+ <command name="glGetFramebufferAttachmentParameteriv"/>
+ <command name="glGenerateMipmap"/>
+ <command name="glBlitFramebuffer"/>
+ <command name="glRenderbufferStorageMultisample"/>
+ <command name="glFramebufferTextureLayer"/>
+ </require>
+ <require profile="compatibility" comment="Reuse ARB_framebuffer_object compatibility profile">
+ <enum name="GL_INDEX"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE"/>
+ </require>
+ <require comment="Reuse ARB_framebuffer_sRGB">
+ <enum name="GL_FRAMEBUFFER_SRGB"/>
+ </require>
+ <require comment="Reuse ARB_half_float_vertex">
+ <type name="GLhalf"/>
+ <enum name="GL_HALF_FLOAT"/>
+ </require>
+ <require comment="Reuse ARB_map_buffer_range">
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <command name="glMapBufferRange"/>
+ <command name="glFlushMappedBufferRange"/>
+ </require>
+ <require comment="Reuse ARB_texture_compression_rgtc">
+ <enum name="GL_COMPRESSED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_RG_RGTC2"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
+ </require>
+ <require comment="Reuse ARB_texture_rg">
+ <enum name="GL_RG"/>
+ <enum name="GL_RG_INTEGER"/>
+ <enum name="GL_R8"/>
+ <enum name="GL_R16"/>
+ <enum name="GL_RG8"/>
+ <enum name="GL_RG16"/>
+ <enum name="GL_R16F"/>
+ <enum name="GL_R32F"/>
+ <enum name="GL_RG16F"/>
+ <enum name="GL_RG32F"/>
+ <enum name="GL_R8I"/>
+ <enum name="GL_R8UI"/>
+ <enum name="GL_R16I"/>
+ <enum name="GL_R16UI"/>
+ <enum name="GL_R32I"/>
+ <enum name="GL_R32UI"/>
+ <enum name="GL_RG8I"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16I"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RG32I"/>
+ <enum name="GL_RG32UI"/>
+ </require>
+ <require comment="Reuse ARB_vertex_array_object">
+ <enum name="GL_VERTEX_ARRAY_BINDING"/>
+ <enum name="GL_CLAMP_VERTEX_COLOR"/>
+ <enum name="GL_CLAMP_FRAGMENT_COLOR"/>
+ <enum name="GL_ALPHA_INTEGER"/>
+ <command name="glBindVertexArray"/>
+ <command name="glDeleteVertexArrays"/>
+ <command name="glGenVertexArrays"/>
+ <command name="glIsVertexArray"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_1" number="3.1">
+ <require>
+ <enum name="GL_SAMPLER_2D_RECT"/>
+ <enum name="GL_SAMPLER_2D_RECT_SHADOW"/>
+ <enum name="GL_SAMPLER_BUFFER"/>
+ <enum name="GL_INT_SAMPLER_2D_RECT"/>
+ <enum name="GL_INT_SAMPLER_BUFFER"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_RECT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER"/>
+ <enum name="GL_TEXTURE_BUFFER"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING"/>
+ <enum name="GL_TEXTURE_RECTANGLE"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE"/>
+ <enum name="GL_PROXY_TEXTURE_RECTANGLE"/>
+ <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE"/>
+ <enum name="GL_R8_SNORM"/>
+ <enum name="GL_RG8_SNORM"/>
+ <enum name="GL_RGB8_SNORM"/>
+ <enum name="GL_RGBA8_SNORM"/>
+ <enum name="GL_R16_SNORM"/>
+ <enum name="GL_RG16_SNORM"/>
+ <enum name="GL_RGB16_SNORM"/>
+ <enum name="GL_RGBA16_SNORM"/>
+ <enum name="GL_SIGNED_NORMALIZED"/>
+ <enum name="GL_PRIMITIVE_RESTART"/>
+ <enum name="GL_PRIMITIVE_RESTART_INDEX"/>
+ <command name="glDrawArraysInstanced"/>
+ <command name="glDrawElementsInstanced"/>
+ <command name="glTexBuffer"/>
+ <command name="glPrimitiveRestartIndex"/>
+ </require>
+ <require comment="Reuse ARB_copy_buffer">
+ <enum name="GL_COPY_READ_BUFFER"/>
+ <enum name="GL_COPY_WRITE_BUFFER"/>
+ <command name="glCopyBufferSubData"/>
+ </require>
+ <require comment="Reuse ARB_uniform_buffer_object">
+ <enum name="GL_UNIFORM_BUFFER"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER_START"/>
+ <enum name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum name="GL_UNIFORM_TYPE"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum name="GL_UNIFORM_OFFSET"/>
+ <enum name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_INVALID_INDEX"/>
+ <command name="glGetUniformIndices"/>
+ <command name="glGetActiveUniformsiv"/>
+ <command name="glGetActiveUniformName"/>
+ <command name="glGetUniformBlockIndex"/>
+ <command name="glGetActiveUniformBlockiv"/>
+ <command name="glGetActiveUniformBlockName"/>
+ <command name="glUniformBlockBinding"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_2" number="3.2">
+ <require>
+ <enum name="GL_CONTEXT_CORE_PROFILE_BIT"/>
+ <enum name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+ <enum name="GL_LINES_ADJACENCY"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY"/>
+ <enum name="GL_TRIANGLES_ADJACENCY"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY"/>
+ <enum name="GL_PROGRAM_POINT_SIZE"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"/>
+ <enum name="GL_GEOMETRY_SHADER"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_GEOMETRY_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+ <enum name="GL_CONTEXT_PROFILE_MASK"/>
+ </require>
+ <require comment="Reuse ARB_depth_clamp">
+ <enum name="GL_DEPTH_CLAMP"/>
+ </require>
+ <require comment="Reuse ARB_draw_elements_base_vertex">
+ <command name="glDrawElementsBaseVertex"/>
+ <command name="glDrawRangeElementsBaseVertex"/>
+ <command name="glDrawElementsInstancedBaseVertex"/>
+ <command name="glMultiDrawElementsBaseVertex"/>
+ </require>
+ <require comment="Reuse ARB_fragment_coord_conventions (none)">
+ </require>
+ <require comment="Reuse ARB_provoking_vertex">
+ <enum name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum name="GL_PROVOKING_VERTEX"/>
+ <command name="glProvokingVertex"/>
+ </require>
+ <require comment="Reuse ARB_seamless_cube_map">
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ <require comment="Reuse ARB_sync">
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum name="GL_OBJECT_TYPE"/>
+ <enum name="GL_SYNC_CONDITION"/>
+ <enum name="GL_SYNC_STATUS"/>
+ <enum name="GL_SYNC_FLAGS"/>
+ <enum name="GL_SYNC_FENCE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum name="GL_UNSIGNALED"/>
+ <enum name="GL_SIGNALED"/>
+ <enum name="GL_ALREADY_SIGNALED"/>
+ <enum name="GL_TIMEOUT_EXPIRED"/>
+ <enum name="GL_CONDITION_SATISFIED"/>
+ <enum name="GL_WAIT_FAILED"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <command name="glFenceSync"/>
+ <command name="glIsSync"/>
+ <command name="glDeleteSync"/>
+ <command name="glClientWaitSync"/>
+ <command name="glWaitSync"/>
+ <command name="glGetInteger64v"/>
+ <command name="glGetSynciv"/>
+ </require>
+ <require comment="Reuse ARB_texture_multisample">
+ <enum name="GL_SAMPLE_POSITION"/>
+ <enum name="GL_SAMPLE_MASK"/>
+ <enum name="GL_SAMPLE_MASK_VALUE"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_SAMPLES"/>
+ <enum name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_INTEGER_SAMPLES"/>
+ <!-- /* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ -->
+ <command name="glGetInteger64i_v"/>
+ <command name="glGetBufferParameteri64v"/>
+ <command name="glFramebufferTexture"/>
+ <command name="glTexImage2DMultisample"/>
+ <command name="glTexImage3DMultisample"/>
+ <command name="glGetMultisamplefv"/>
+ <command name="glSampleMaski"/>
+ </require>
+ <!-- OpenGL 3.2 is where core and compatibility profiles were first
+ introduced, so many, many things were removed from the core
+ profile in this version. A few were reintroduced later (e.g.
+ GetPointerv / STACK_{UNDER,OVER}FLOW by OpenGL 4.3 for debug
+ functionality). -->
+ <remove profile="core" comment="Compatibility-only GL 1.0 features removed from GL 3.2">
+ <command name="glNewList"/>
+ <command name="glEndList"/>
+ <command name="glCallList"/>
+ <command name="glCallLists"/>
+ <command name="glDeleteLists"/>
+ <command name="glGenLists"/>
+ <command name="glListBase"/>
+ <command name="glBegin"/>
+ <command name="glBitmap"/>
+ <command name="glColor3b"/>
+ <command name="glColor3bv"/>
+ <command name="glColor3d"/>
+ <command name="glColor3dv"/>
+ <command name="glColor3f"/>
+ <command name="glColor3fv"/>
+ <command name="glColor3i"/>
+ <command name="glColor3iv"/>
+ <command name="glColor3s"/>
+ <command name="glColor3sv"/>
+ <command name="glColor3ub"/>
+ <command name="glColor3ubv"/>
+ <command name="glColor3ui"/>
+ <command name="glColor3uiv"/>
+ <command name="glColor3us"/>
+ <command name="glColor3usv"/>
+ <command name="glColor4b"/>
+ <command name="glColor4bv"/>
+ <command name="glColor4d"/>
+ <command name="glColor4dv"/>
+ <command name="glColor4f"/>
+ <command name="glColor4fv"/>
+ <command name="glColor4i"/>
+ <command name="glColor4iv"/>
+ <command name="glColor4s"/>
+ <command name="glColor4sv"/>
+ <command name="glColor4ub"/>
+ <command name="glColor4ubv"/>
+ <command name="glColor4ui"/>
+ <command name="glColor4uiv"/>
+ <command name="glColor4us"/>
+ <command name="glColor4usv"/>
+ <command name="glEdgeFlag"/>
+ <command name="glEdgeFlagv"/>
+ <command name="glEnd"/>
+ <command name="glIndexd"/>
+ <command name="glIndexdv"/>
+ <command name="glIndexf"/>
+ <command name="glIndexfv"/>
+ <command name="glIndexi"/>
+ <command name="glIndexiv"/>
+ <command name="glIndexs"/>
+ <command name="glIndexsv"/>
+ <command name="glNormal3b"/>
+ <command name="glNormal3bv"/>
+ <command name="glNormal3d"/>
+ <command name="glNormal3dv"/>
+ <command name="glNormal3f"/>
+ <command name="glNormal3fv"/>
+ <command name="glNormal3i"/>
+ <command name="glNormal3iv"/>
+ <command name="glNormal3s"/>
+ <command name="glNormal3sv"/>
+ <command name="glRasterPos2d"/>
+ <command name="glRasterPos2dv"/>
+ <command name="glRasterPos2f"/>
+ <command name="glRasterPos2fv"/>
+ <command name="glRasterPos2i"/>
+ <command name="glRasterPos2iv"/>
+ <command name="glRasterPos2s"/>
+ <command name="glRasterPos2sv"/>
+ <command name="glRasterPos3d"/>
+ <command name="glRasterPos3dv"/>
+ <command name="glRasterPos3f"/>
+ <command name="glRasterPos3fv"/>
+ <command name="glRasterPos3i"/>
+ <command name="glRasterPos3iv"/>
+ <command name="glRasterPos3s"/>
+ <command name="glRasterPos3sv"/>
+ <command name="glRasterPos4d"/>
+ <command name="glRasterPos4dv"/>
+ <command name="glRasterPos4f"/>
+ <command name="glRasterPos4fv"/>
+ <command name="glRasterPos4i"/>
+ <command name="glRasterPos4iv"/>
+ <command name="glRasterPos4s"/>
+ <command name="glRasterPos4sv"/>
+ <command name="glRectd"/>
+ <command name="glRectdv"/>
+ <command name="glRectf"/>
+ <command name="glRectfv"/>
+ <command name="glRecti"/>
+ <command name="glRectiv"/>
+ <command name="glRects"/>
+ <command name="glRectsv"/>
+ <command name="glTexCoord1d"/>
+ <command name="glTexCoord1dv"/>
+ <command name="glTexCoord1f"/>
+ <command name="glTexCoord1fv"/>
+ <command name="glTexCoord1i"/>
+ <command name="glTexCoord1iv"/>
+ <command name="glTexCoord1s"/>
+ <command name="glTexCoord1sv"/>
+ <command name="glTexCoord2d"/>
+ <command name="glTexCoord2dv"/>
+ <command name="glTexCoord2f"/>
+ <command name="glTexCoord2fv"/>
+ <command name="glTexCoord2i"/>
+ <command name="glTexCoord2iv"/>
+ <command name="glTexCoord2s"/>
+ <command name="glTexCoord2sv"/>
+ <command name="glTexCoord3d"/>
+ <command name="glTexCoord3dv"/>
+ <command name="glTexCoord3f"/>
+ <command name="glTexCoord3fv"/>
+ <command name="glTexCoord3i"/>
+ <command name="glTexCoord3iv"/>
+ <command name="glTexCoord3s"/>
+ <command name="glTexCoord3sv"/>
+ <command name="glTexCoord4d"/>
+ <command name="glTexCoord4dv"/>
+ <command name="glTexCoord4f"/>
+ <command name="glTexCoord4fv"/>
+ <command name="glTexCoord4i"/>
+ <command name="glTexCoord4iv"/>
+ <command name="glTexCoord4s"/>
+ <command name="glTexCoord4sv"/>
+ <command name="glVertex2d"/>
+ <command name="glVertex2dv"/>
+ <command name="glVertex2f"/>
+ <command name="glVertex2fv"/>
+ <command name="glVertex2i"/>
+ <command name="glVertex2iv"/>
+ <command name="glVertex2s"/>
+ <command name="glVertex2sv"/>
+ <command name="glVertex3d"/>
+ <command name="glVertex3dv"/>
+ <command name="glVertex3f"/>
+ <command name="glVertex3fv"/>
+ <command name="glVertex3i"/>
+ <command name="glVertex3iv"/>
+ <command name="glVertex3s"/>
+ <command name="glVertex3sv"/>
+ <command name="glVertex4d"/>
+ <command name="glVertex4dv"/>
+ <command name="glVertex4f"/>
+ <command name="glVertex4fv"/>
+ <command name="glVertex4i"/>
+ <command name="glVertex4iv"/>
+ <command name="glVertex4s"/>
+ <command name="glVertex4sv"/>
+ <command name="glClipPlane"/>
+ <command name="glColorMaterial"/>
+ <command name="glFogf"/>
+ <command name="glFogfv"/>
+ <command name="glFogi"/>
+ <command name="glFogiv"/>
+ <command name="glLightf"/>
+ <command name="glLightfv"/>
+ <command name="glLighti"/>
+ <command name="glLightiv"/>
+ <command name="glLightModelf"/>
+ <command name="glLightModelfv"/>
+ <command name="glLightModeli"/>
+ <command name="glLightModeliv"/>
+ <command name="glLineStipple"/>
+ <command name="glMaterialf"/>
+ <command name="glMaterialfv"/>
+ <command name="glMateriali"/>
+ <command name="glMaterialiv"/>
+ <command name="glPolygonStipple"/>
+ <command name="glShadeModel"/>
+ <command name="glTexEnvf"/>
+ <command name="glTexEnvfv"/>
+ <command name="glTexEnvi"/>
+ <command name="glTexEnviv"/>
+ <command name="glTexGend"/>
+ <command name="glTexGendv"/>
+ <command name="glTexGenf"/>
+ <command name="glTexGenfv"/>
+ <command name="glTexGeni"/>
+ <command name="glTexGeniv"/>
+ <command name="glFeedbackBuffer"/>
+ <command name="glSelectBuffer"/>
+ <command name="glRenderMode"/>
+ <command name="glInitNames"/>
+ <command name="glLoadName"/>
+ <command name="glPassThrough"/>
+ <command name="glPopName"/>
+ <command name="glPushName"/>
+ <command name="glClearAccum"/>
+ <command name="glClearIndex"/>
+ <command name="glIndexMask"/>
+ <command name="glAccum"/>
+ <command name="glPopAttrib"/>
+ <command name="glPushAttrib"/>
+ <command name="glMap1d"/>
+ <command name="glMap1f"/>
+ <command name="glMap2d"/>
+ <command name="glMap2f"/>
+ <command name="glMapGrid1d"/>
+ <command name="glMapGrid1f"/>
+ <command name="glMapGrid2d"/>
+ <command name="glMapGrid2f"/>
+ <command name="glEvalCoord1d"/>
+ <command name="glEvalCoord1dv"/>
+ <command name="glEvalCoord1f"/>
+ <command name="glEvalCoord1fv"/>
+ <command name="glEvalCoord2d"/>
+ <command name="glEvalCoord2dv"/>
+ <command name="glEvalCoord2f"/>
+ <command name="glEvalCoord2fv"/>
+ <command name="glEvalMesh1"/>
+ <command name="glEvalPoint1"/>
+ <command name="glEvalMesh2"/>
+ <command name="glEvalPoint2"/>
+ <command name="glAlphaFunc"/>
+ <command name="glPixelZoom"/>
+ <command name="glPixelTransferf"/>
+ <command name="glPixelTransferi"/>
+ <command name="glPixelMapfv"/>
+ <command name="glPixelMapuiv"/>
+ <command name="glPixelMapusv"/>
+ <command name="glCopyPixels"/>
+ <command name="glDrawPixels"/>
+ <command name="glGetClipPlane"/>
+ <command name="glGetLightfv"/>
+ <command name="glGetLightiv"/>
+ <command name="glGetMapdv"/>
+ <command name="glGetMapfv"/>
+ <command name="glGetMapiv"/>
+ <command name="glGetMaterialfv"/>
+ <command name="glGetMaterialiv"/>
+ <command name="glGetPixelMapfv"/>
+ <command name="glGetPixelMapuiv"/>
+ <command name="glGetPixelMapusv"/>
+ <command name="glGetPolygonStipple"/>
+ <command name="glGetTexEnvfv"/>
+ <command name="glGetTexEnviv"/>
+ <command name="glGetTexGendv"/>
+ <command name="glGetTexGenfv"/>
+ <command name="glGetTexGeniv"/>
+ <command name="glIsList"/>
+ <command name="glFrustum"/>
+ <command name="glLoadIdentity"/>
+ <command name="glLoadMatrixf"/>
+ <command name="glLoadMatrixd"/>
+ <command name="glMatrixMode"/>
+ <command name="glMultMatrixf"/>
+ <command name="glMultMatrixd"/>
+ <command name="glOrtho"/>
+ <command name="glPopMatrix"/>
+ <command name="glPushMatrix"/>
+ <command name="glRotated"/>
+ <command name="glRotatef"/>
+ <command name="glScaled"/>
+ <command name="glScalef"/>
+ <command name="glTranslated"/>
+ <command name="glTranslatef"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.1 features removed from GL 3.2">
+ <enum name="GL_CURRENT_BIT"/>
+ <enum name="GL_POINT_BIT"/>
+ <enum name="GL_LINE_BIT"/>
+ <enum name="GL_POLYGON_BIT"/>
+ <enum name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum name="GL_PIXEL_MODE_BIT"/>
+ <enum name="GL_LIGHTING_BIT"/>
+ <enum name="GL_FOG_BIT"/>
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_VIEWPORT_BIT"/>
+ <enum name="GL_TRANSFORM_BIT"/>
+ <enum name="GL_ENABLE_BIT"/>
+ <enum name="GL_HINT_BIT"/>
+ <enum name="GL_EVAL_BIT"/>
+ <enum name="GL_LIST_BIT"/>
+ <enum name="GL_TEXTURE_BIT"/>
+ <enum name="GL_SCISSOR_BIT"/>
+ <enum name="GL_ALL_ATTRIB_BITS"/>
+ <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ <enum name="GL_QUAD_STRIP"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_POLYGON"/>
+ <enum name="GL_ACCUM"/>
+ <enum name="GL_LOAD"/>
+ <enum name="GL_RETURN"/>
+ <enum name="GL_MULT"/>
+ <enum name="GL_ADD"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_2D"/>
+ <enum name="GL_3D"/>
+ <enum name="GL_3D_COLOR"/>
+ <enum name="GL_3D_COLOR_TEXTURE"/>
+ <enum name="GL_4D_COLOR_TEXTURE"/>
+ <enum name="GL_PASS_THROUGH_TOKEN"/>
+ <enum name="GL_POINT_TOKEN"/>
+ <enum name="GL_LINE_TOKEN"/>
+ <enum name="GL_POLYGON_TOKEN"/>
+ <enum name="GL_BITMAP_TOKEN"/>
+ <enum name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum name="GL_COPY_PIXEL_TOKEN"/>
+ <enum name="GL_LINE_RESET_TOKEN"/>
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_COEFF"/>
+ <enum name="GL_ORDER"/>
+ <enum name="GL_DOMAIN"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_INDEX"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_COLOR"/>
+ <enum name="GL_CURRENT_RASTER_INDEX"/>
+ <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_POSITION"/>
+ <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum name="GL_CURRENT_RASTER_DISTANCE"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum name="GL_LINE_STIPPLE_REPEAT"/>
+ <enum name="GL_LIST_MODE"/>
+ <enum name="GL_MAX_LIST_NESTING"/>
+ <enum name="GL_LIST_BASE"/>
+ <enum name="GL_LIST_INDEX"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_EDGE_FLAG"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_COLOR_MATERIAL_FACE"/>
+ <enum name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_ACCUM_CLEAR_VALUE"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_AUX_BUFFERS"/>
+ <enum name="GL_INDEX_CLEAR_VALUE"/>
+ <enum name="GL_INDEX_WRITEMASK"/>
+ <enum name="GL_INDEX_MODE"/>
+ <enum name="GL_RGBA_MODE"/>
+ <enum name="GL_RENDER_MODE"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_RED_SCALE"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_ZOOM_X"/>
+ <enum name="GL_ZOOM_Y"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_MAX_EVAL_ORDER"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_INDEX_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_ACCUM_RED_BITS"/>
+ <enum name="GL_ACCUM_GREEN_BITS"/>
+ <enum name="GL_ACCUM_BLUE_BITS"/>
+ <enum name="GL_ACCUM_ALPHA_BITS"/>
+ <enum name="GL_NAME_STACK_DEPTH"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MAP1_GRID_DOMAIN"/>
+ <enum name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum name="GL_MAP2_GRID_DOMAIN"/>
+ <enum name="GL_MAP2_GRID_SEGMENTS"/>
+ <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum name="GL_SELECTION_BUFFER_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_INDEX_ARRAY_TYPE"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COMPONENTS"/>
+ <enum name="GL_TEXTURE_BORDER"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_RESIDENT"/>
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_COMPILE"/>
+ <enum name="GL_COMPILE_AND_EXECUTE"/>
+ <enum name="GL_2_BYTES"/>
+ <enum name="GL_3_BYTES"/>
+ <enum name="GL_4_BYTES"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_COLOR_INDEXES"/>
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_COLOR_INDEX"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_BITMAP"/>
+ <enum name="GL_RENDER"/>
+ <enum name="GL_FEEDBACK"/>
+ <enum name="GL_SELECT"/>
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ <enum name="GL_S"/>
+ <enum name="GL_T"/>
+ <enum name="GL_R"/>
+ <enum name="GL_Q"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV"/>
+ <enum name="GL_EYE_LINEAR"/>
+ <enum name="GL_OBJECT_LINEAR"/>
+ <enum name="GL_SPHERE_MAP"/>
+ <enum name="GL_TEXTURE_GEN_MODE"/>
+ <enum name="GL_OBJECT_PLANE"/>
+ <enum name="GL_EYE_PLANE"/>
+ <enum name="GL_CLAMP"/>
+ <enum name="GL_ALPHA4"/>
+ <enum name="GL_ALPHA8"/>
+ <enum name="GL_ALPHA12"/>
+ <enum name="GL_ALPHA16"/>
+ <enum name="GL_LUMINANCE4"/>
+ <enum name="GL_LUMINANCE8"/>
+ <enum name="GL_LUMINANCE12"/>
+ <enum name="GL_LUMINANCE16"/>
+ <enum name="GL_LUMINANCE4_ALPHA4"/>
+ <enum name="GL_LUMINANCE6_ALPHA2"/>
+ <enum name="GL_LUMINANCE8_ALPHA8"/>
+ <enum name="GL_LUMINANCE12_ALPHA4"/>
+ <enum name="GL_LUMINANCE12_ALPHA12"/>
+ <enum name="GL_LUMINANCE16_ALPHA16"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_INTENSITY4"/>
+ <enum name="GL_INTENSITY8"/>
+ <enum name="GL_INTENSITY12"/>
+ <enum name="GL_INTENSITY16"/>
+ <enum name="GL_V2F"/>
+ <enum name="GL_V3F"/>
+ <enum name="GL_C4UB_V2F"/>
+ <enum name="GL_C4UB_V3F"/>
+ <enum name="GL_C3F_V3F"/>
+ <enum name="GL_N3F_V3F"/>
+ <enum name="GL_C4F_N3F_V3F"/>
+ <enum name="GL_T2F_V3F"/>
+ <enum name="GL_T4F_V4F"/>
+ <enum name="GL_T2F_C4UB_V3F"/>
+ <enum name="GL_T2F_C3F_V3F"/>
+ <enum name="GL_T2F_N3F_V3F"/>
+ <enum name="GL_T2F_C4F_N3F_V3F"/>
+ <enum name="GL_T4F_C4F_N3F_V4F"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <command name="glArrayElement"/>
+ <command name="glColorPointer"/>
+ <command name="glDisableClientState"/>
+ <command name="glEdgeFlagPointer"/>
+ <command name="glEnableClientState"/>
+ <command name="glIndexPointer"/>
+ <command name="glGetPointerv"/>
+ <command name="glInterleavedArrays"/>
+ <command name="glNormalPointer"/>
+ <command name="glTexCoordPointer"/>
+ <command name="glVertexPointer"/>
+ <command name="glAreTexturesResident"/>
+ <command name="glPrioritizeTextures"/>
+ <command name="glIndexub"/>
+ <command name="glIndexubv"/>
+ <command name="glPopClientAttrib"/>
+ <command name="glPushClientAttrib"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.2 features removed from GL 3.2">
+ <enum name="GL_RESCALE_NORMAL"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_SINGLE_COLOR"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.3 features removed from GL 3.2">
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum name="GL_MAX_TEXTURE_UNITS"/>
+ <enum name="GL_TRANSPOSE_MODELVIEW_MATRIX"/>
+ <enum name="GL_TRANSPOSE_PROJECTION_MATRIX"/>
+ <enum name="GL_TRANSPOSE_TEXTURE_MATRIX"/>
+ <enum name="GL_TRANSPOSE_COLOR_MATRIX"/>
+ <enum name="GL_MULTISAMPLE_BIT"/>
+ <enum name="GL_NORMAL_MAP"/>
+ <enum name="GL_REFLECTION_MAP"/>
+ <enum name="GL_COMPRESSED_ALPHA"/>
+ <enum name="GL_COMPRESSED_LUMINANCE"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA"/>
+ <enum name="GL_COMPRESSED_INTENSITY"/>
+ <enum name="GL_COMBINE"/>
+ <enum name="GL_COMBINE_RGB"/>
+ <enum name="GL_COMBINE_ALPHA"/>
+ <enum name="GL_SOURCE0_RGB"/>
+ <enum name="GL_SOURCE1_RGB"/>
+ <enum name="GL_SOURCE2_RGB"/>
+ <enum name="GL_SOURCE0_ALPHA"/>
+ <enum name="GL_SOURCE1_ALPHA"/>
+ <enum name="GL_SOURCE2_ALPHA"/>
+ <enum name="GL_OPERAND0_RGB"/>
+ <enum name="GL_OPERAND1_RGB"/>
+ <enum name="GL_OPERAND2_RGB"/>
+ <enum name="GL_OPERAND0_ALPHA"/>
+ <enum name="GL_OPERAND1_ALPHA"/>
+ <enum name="GL_OPERAND2_ALPHA"/>
+ <enum name="GL_RGB_SCALE"/>
+ <enum name="GL_ADD_SIGNED"/>
+ <enum name="GL_INTERPOLATE"/>
+ <enum name="GL_SUBTRACT"/>
+ <enum name="GL_CONSTANT"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PREVIOUS"/>
+ <enum name="GL_DOT3_RGB"/>
+ <enum name="GL_DOT3_RGBA"/>
+ <command name="glClientActiveTexture"/>
+ <command name="glMultiTexCoord1d"/>
+ <command name="glMultiTexCoord1dv"/>
+ <command name="glMultiTexCoord1f"/>
+ <command name="glMultiTexCoord1fv"/>
+ <command name="glMultiTexCoord1i"/>
+ <command name="glMultiTexCoord1iv"/>
+ <command name="glMultiTexCoord1s"/>
+ <command name="glMultiTexCoord1sv"/>
+ <command name="glMultiTexCoord2d"/>
+ <command name="glMultiTexCoord2dv"/>
+ <command name="glMultiTexCoord2f"/>
+ <command name="glMultiTexCoord2fv"/>
+ <command name="glMultiTexCoord2i"/>
+ <command name="glMultiTexCoord2iv"/>
+ <command name="glMultiTexCoord2s"/>
+ <command name="glMultiTexCoord2sv"/>
+ <command name="glMultiTexCoord3d"/>
+ <command name="glMultiTexCoord3dv"/>
+ <command name="glMultiTexCoord3f"/>
+ <command name="glMultiTexCoord3fv"/>
+ <command name="glMultiTexCoord3i"/>
+ <command name="glMultiTexCoord3iv"/>
+ <command name="glMultiTexCoord3s"/>
+ <command name="glMultiTexCoord3sv"/>
+ <command name="glMultiTexCoord4d"/>
+ <command name="glMultiTexCoord4dv"/>
+ <command name="glMultiTexCoord4f"/>
+ <command name="glMultiTexCoord4fv"/>
+ <command name="glMultiTexCoord4i"/>
+ <command name="glMultiTexCoord4iv"/>
+ <command name="glMultiTexCoord4s"/>
+ <command name="glMultiTexCoord4sv"/>
+ <command name="glLoadTransposeMatrixf"/>
+ <command name="glLoadTransposeMatrixd"/>
+ <command name="glMultTransposeMatrixf"/>
+ <command name="glMultTransposeMatrixd"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.4 features removed from GL 3.2">
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_FOG_COORDINATE_SOURCE"/>
+ <enum name="GL_FOG_COORDINATE"/>
+ <enum name="GL_FRAGMENT_DEPTH"/>
+ <enum name="GL_CURRENT_FOG_COORDINATE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY"/>
+ <enum name="GL_COLOR_SUM"/>
+ <enum name="GL_CURRENT_SECONDARY_COLOR"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY"/>
+ <enum name="GL_TEXTURE_FILTER_CONTROL"/>
+ <enum name="GL_DEPTH_TEXTURE_MODE"/>
+ <enum name="GL_COMPARE_R_TO_TEXTURE"/>
+ <command name="glFogCoordf"/>
+ <command name="glFogCoordfv"/>
+ <command name="glFogCoordd"/>
+ <command name="glFogCoorddv"/>
+ <command name="glFogCoordPointer"/>
+ <command name="glSecondaryColor3b"/>
+ <command name="glSecondaryColor3bv"/>
+ <command name="glSecondaryColor3d"/>
+ <command name="glSecondaryColor3dv"/>
+ <command name="glSecondaryColor3f"/>
+ <command name="glSecondaryColor3fv"/>
+ <command name="glSecondaryColor3i"/>
+ <command name="glSecondaryColor3iv"/>
+ <command name="glSecondaryColor3s"/>
+ <command name="glSecondaryColor3sv"/>
+ <command name="glSecondaryColor3ub"/>
+ <command name="glSecondaryColor3ubv"/>
+ <command name="glSecondaryColor3ui"/>
+ <command name="glSecondaryColor3uiv"/>
+ <command name="glSecondaryColor3us"/>
+ <command name="glSecondaryColor3usv"/>
+ <command name="glSecondaryColorPointer"/>
+ <command name="glWindowPos2d"/>
+ <command name="glWindowPos2dv"/>
+ <command name="glWindowPos2f"/>
+ <command name="glWindowPos2fv"/>
+ <command name="glWindowPos2i"/>
+ <command name="glWindowPos2iv"/>
+ <command name="glWindowPos2s"/>
+ <command name="glWindowPos2sv"/>
+ <command name="glWindowPos3d"/>
+ <command name="glWindowPos3dv"/>
+ <command name="glWindowPos3f"/>
+ <command name="glWindowPos3fv"/>
+ <command name="glWindowPos3i"/>
+ <command name="glWindowPos3iv"/>
+ <command name="glWindowPos3s"/>
+ <command name="glWindowPos3sv"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.5 features removed from GL 3.2">
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_INDEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORD_SRC"/>
+ <enum name="GL_FOG_COORD"/>
+ <enum name="GL_CURRENT_FOG_COORD"/>
+ <enum name="GL_FOG_COORD_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORD_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORD_ARRAY"/>
+ <enum name="GL_FOG_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SRC0_RGB"/>
+ <enum name="GL_SRC1_RGB"/>
+ <enum name="GL_SRC2_RGB"/>
+ <enum name="GL_SRC0_ALPHA"/>
+ <enum name="GL_SRC2_ALPHA"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 2.0 features removed from GL 3.2">
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
+ <enum name="GL_POINT_SPRITE"/>
+ <enum name="GL_COORD_REPLACE"/>
+ <enum name="GL_MAX_TEXTURE_COORDS"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 2.1 features removed from GL 3.2">
+ <enum name="GL_CURRENT_RASTER_SECONDARY_COLOR"/>
+ <enum name="GL_SLUMINANCE_ALPHA"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8"/>
+ <enum name="GL_SLUMINANCE"/>
+ <enum name="GL_SLUMINANCE8"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 3.0 features removed from GL 3.2">
+ <enum name="GL_CLAMP_VERTEX_COLOR"/>
+ <enum name="GL_CLAMP_FRAGMENT_COLOR"/>
+ <enum name="GL_ALPHA_INTEGER"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE"/>
+ </remove>
+ <!-- Deprecated (not removed) in OpenGL 3.2 core;
+ deprecate tag not defined/supported yet
+ <deprecate profile="core">
+ <enum name="GL_MAX_VARYING_FLOATS"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ </deprecate>
+ -->
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_3" number="3.3">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+ </require>
+ <require comment="Reuse ARB_blend_func_extended">
+ <enum name="GL_SRC1_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC1_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC1_ALPHA"/>
+ <enum name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+ <command name="glBindFragDataLocationIndexed"/>
+ <command name="glGetFragDataIndex"/>
+ </require>
+ <require comment="Reuse ARB_explicit_attrib_location (none)">
+ </require>
+ <require comment="Reuse ARB_occlusion_query2">
+ <enum name="GL_ANY_SAMPLES_PASSED"/>
+ </require>
+ <require comment="Reuse ARB_sampler_objects">
+ <enum name="GL_SAMPLER_BINDING"/>
+ <command name="glGenSamplers"/>
+ <command name="glDeleteSamplers"/>
+ <command name="glIsSampler"/>
+ <command name="glBindSampler"/>
+ <command name="glSamplerParameteri"/>
+ <command name="glSamplerParameteriv"/>
+ <command name="glSamplerParameterf"/>
+ <command name="glSamplerParameterfv"/>
+ <command name="glSamplerParameterIiv"/>
+ <command name="glSamplerParameterIuiv"/>
+ <command name="glGetSamplerParameteriv"/>
+ <command name="glGetSamplerParameterIiv"/>
+ <command name="glGetSamplerParameterfv"/>
+ <command name="glGetSamplerParameterIuiv"/>
+ </require>
+ <require comment="Reuse ARB_shader_bit_encoding (none)">
+ </require>
+ <require comment="Reuse ARB_texture_rgb10_a2ui">
+ <enum name="GL_RGB10_A2UI"/>
+ </require>
+ <require comment="Reuse ARB_texture_swizzle">
+ <enum name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum name="GL_TEXTURE_SWIZZLE_RGBA"/>
+ </require>
+ <require comment="Reuse ARB_timer_query">
+ <enum name="GL_TIME_ELAPSED"/>
+ <enum name="GL_TIMESTAMP"/>
+ <command name="glQueryCounter"/>
+ <command name="glGetQueryObjecti64v"/>
+ <command name="glGetQueryObjectui64v"/>
+ </require>
+ <require comment="Reuse ARB_vertex_type_2_10_10_10_rev">
+ <enum name="GL_INT_2_10_10_10_REV"/>
+ <command name="glVertexAttribDivisor"/>
+ <command name="glVertexAttribP1ui"/>
+ <command name="glVertexAttribP1uiv"/>
+ <command name="glVertexAttribP2ui"/>
+ <command name="glVertexAttribP2uiv"/>
+ <command name="glVertexAttribP3ui"/>
+ <command name="glVertexAttribP3uiv"/>
+ <command name="glVertexAttribP4ui"/>
+ <command name="glVertexAttribP4uiv"/>
+ </require>
+ <require profile="compatibility" comment="Reuse ARB_vertex_type_2_10_10_10_rev compatibility profile">
+ <command name="glVertexP2ui"/>
+ <command name="glVertexP2uiv"/>
+ <command name="glVertexP3ui"/>
+ <command name="glVertexP3uiv"/>
+ <command name="glVertexP4ui"/>
+ <command name="glVertexP4uiv"/>
+ <command name="glTexCoordP1ui"/>
+ <command name="glTexCoordP1uiv"/>
+ <command name="glTexCoordP2ui"/>
+ <command name="glTexCoordP2uiv"/>
+ <command name="glTexCoordP3ui"/>
+ <command name="glTexCoordP3uiv"/>
+ <command name="glTexCoordP4ui"/>
+ <command name="glTexCoordP4uiv"/>
+ <command name="glMultiTexCoordP1ui"/>
+ <command name="glMultiTexCoordP1uiv"/>
+ <command name="glMultiTexCoordP2ui"/>
+ <command name="glMultiTexCoordP2uiv"/>
+ <command name="glMultiTexCoordP3ui"/>
+ <command name="glMultiTexCoordP3uiv"/>
+ <command name="glMultiTexCoordP4ui"/>
+ <command name="glMultiTexCoordP4uiv"/>
+ <command name="glNormalP3ui"/>
+ <command name="glNormalP3uiv"/>
+ <command name="glColorP3ui"/>
+ <command name="glColorP3uiv"/>
+ <command name="glColorP4ui"/>
+ <command name="glColorP4uiv"/>
+ <command name="glSecondaryColorP3ui"/>
+ <command name="glSecondaryColorP3uiv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_0" number="4.0">
+ <require>
+ <enum name="GL_SAMPLE_SHADING"/>
+ <enum name="GL_MIN_SAMPLE_SHADING_VALUE"/>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW"/>
+ <enum name="GL_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <command name="glMinSampleShading"/>
+ <command name="glBlendEquationi"/>
+ <command name="glBlendEquationSeparatei"/>
+ <command name="glBlendFunci"/>
+ <command name="glBlendFuncSeparatei"/>
+ </require>
+ <require comment="Reuse ARB_draw_buffers_blend (none)">
+ </require>
+ <require comment="Reuse ARB_draw_indirect">
+ <enum name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ <command name="glDrawArraysIndirect"/>
+ <command name="glDrawElementsIndirect"/>
+ </require>
+ <require comment="Reuse ARB_gpu_shader5">
+ <enum name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ </require>
+ <require comment="Reuse ARB_gpu_shader_fp64">
+ <enum name="GL_DOUBLE_VEC2"/>
+ <enum name="GL_DOUBLE_VEC3"/>
+ <enum name="GL_DOUBLE_VEC4"/>
+ <enum name="GL_DOUBLE_MAT2"/>
+ <enum name="GL_DOUBLE_MAT3"/>
+ <enum name="GL_DOUBLE_MAT4"/>
+ <enum name="GL_DOUBLE_MAT2x3"/>
+ <enum name="GL_DOUBLE_MAT2x4"/>
+ <enum name="GL_DOUBLE_MAT3x2"/>
+ <enum name="GL_DOUBLE_MAT3x4"/>
+ <enum name="GL_DOUBLE_MAT4x2"/>
+ <enum name="GL_DOUBLE_MAT4x3"/>
+ <command name="glUniform1d"/>
+ <command name="glUniform2d"/>
+ <command name="glUniform3d"/>
+ <command name="glUniform4d"/>
+ <command name="glUniform1dv"/>
+ <command name="glUniform2dv"/>
+ <command name="glUniform3dv"/>
+ <command name="glUniform4dv"/>
+ <command name="glUniformMatrix2dv"/>
+ <command name="glUniformMatrix3dv"/>
+ <command name="glUniformMatrix4dv"/>
+ <command name="glUniformMatrix2x3dv"/>
+ <command name="glUniformMatrix2x4dv"/>
+ <command name="glUniformMatrix3x2dv"/>
+ <command name="glUniformMatrix3x4dv"/>
+ <command name="glUniformMatrix4x2dv"/>
+ <command name="glUniformMatrix4x3dv"/>
+ <command name="glGetUniformdv"/>
+ </require>
+ <require comment="Reuse ARB_shader_subroutine">
+ <enum name="GL_ACTIVE_SUBROUTINES"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_MAX_SUBROUTINES"/>
+ <enum name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_COMPATIBLE_SUBROUTINES"/>
+ <command name="glGetSubroutineUniformLocation"/>
+ <command name="glGetSubroutineIndex"/>
+ <command name="glGetActiveSubroutineUniformiv"/>
+ <command name="glGetActiveSubroutineUniformName"/>
+ <command name="glGetActiveSubroutineName"/>
+ <command name="glUniformSubroutinesuiv"/>
+ <command name="glGetUniformSubroutineuiv"/>
+ <command name="glGetProgramStageiv"/>
+ </require>
+ <require comment="Reuse ARB_tessellation_shader">
+ <enum name="GL_PATCHES"/>
+ <enum name="GL_PATCH_VERTICES"/>
+ <enum name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+ <enum name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+ <enum name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
+ <enum name="GL_TESS_GEN_MODE"/>
+ <enum name="GL_TESS_GEN_SPACING"/>
+ <enum name="GL_TESS_GEN_VERTEX_ORDER"/>
+ <enum name="GL_TESS_GEN_POINT_MODE"/>
+ <enum name="GL_ISOLINES"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_FRACTIONAL_ODD"/>
+ <enum name="GL_FRACTIONAL_EVEN"/>
+ <enum name="GL_MAX_PATCH_VERTICES"/>
+ <enum name="GL_MAX_TESS_GEN_LEVEL"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_PATCH_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_CONTROL_SHADER"/>
+ <command name="glPatchParameteri"/>
+ <command name="glPatchParameterfv"/>
+ </require>
+ <require comment="Reuse ARB_texture_buffer_object_rgb32 (none)">
+ </require>
+ <require comment="Reuse ARB_texture_cube_map_array (none)">
+ </require>
+ <require comment="Reuse ARB_texture_gather (none)">
+ </require>
+ <require comment="Reuse ARB_texture_query_lod (none)">
+ </require>
+ <require comment="Reuse ARB_transform_feedback2">
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <command name="glBindTransformFeedback"/>
+ <command name="glDeleteTransformFeedbacks"/>
+ <command name="glGenTransformFeedbacks"/>
+ <command name="glIsTransformFeedback"/>
+ <command name="glPauseTransformFeedback"/>
+ <command name="glResumeTransformFeedback"/>
+ <command name="glDrawTransformFeedback"/>
+ </require>
+ <require comment="Reuse ARB_transform_feedback3">
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ <command name="glDrawTransformFeedbackStream"/>
+ <command name="glBeginQueryIndexed"/>
+ <command name="glEndQueryIndexed"/>
+ <command name="glGetQueryIndexediv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_1" number="4.1">
+ <require comment="Reuse tokens from ARB_ES2_compatibility">
+ <enum name="GL_FIXED"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum name="GL_LOW_FLOAT"/>
+ <enum name="GL_MEDIUM_FLOAT"/>
+ <enum name="GL_HIGH_FLOAT"/>
+ <enum name="GL_LOW_INT"/>
+ <enum name="GL_MEDIUM_INT"/>
+ <enum name="GL_HIGH_INT"/>
+ <enum name="GL_SHADER_COMPILER"/>
+ <enum name="GL_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum name="GL_MAX_VARYING_VECTORS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <enum name="GL_RGB565"/>
+ </require>
+ <require comment="Reuse tokens from ARB_get_program_binary">
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_separate_shader_objects">
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_PROGRAM_SEPARABLE"/>
+ <enum name="GL_ACTIVE_PROGRAM"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shader_precision (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already">
+ </require>
+ <require comment="Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already">
+ <enum name="GL_MAX_VIEWPORTS"/>
+ <enum name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+ <enum name="GL_VIEWPORT_BOUNDS_RANGE"/>
+ <enum name="GL_LAYER_PROVOKING_VERTEX"/>
+ <enum name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+ <enum name="GL_UNDEFINED_VERTEX"/>
+ </require>
+ <require comment="Reuse commands from ARB_ES2_compatibility">
+ <command name="glReleaseShaderCompiler"/>
+ <command name="glShaderBinary"/>
+ <command name="glGetShaderPrecisionFormat"/>
+ <command name="glDepthRangef"/>
+ <command name="glClearDepthf"/>
+ </require>
+ <require comment="Reuse commands from ARB_get_program_binary">
+ <command name="glGetProgramBinary"/>
+ <command name="glProgramBinary"/>
+ <command name="glProgramParameteri"/>
+ </require>
+ <require comment="Reuse commands from ARB_separate_shader_objects">
+ <command name="glUseProgramStages"/>
+ <command name="glActiveShaderProgram"/>
+ <command name="glCreateShaderProgramv"/>
+ <command name="glBindProgramPipeline"/>
+ <command name="glDeleteProgramPipelines"/>
+ <command name="glGenProgramPipelines"/>
+ <command name="glIsProgramPipeline"/>
+ <command name="glGetProgramPipelineiv"/>
+ <command name="glProgramUniform1i"/>
+ <command name="glProgramUniform1iv"/>
+ <command name="glProgramUniform1f"/>
+ <command name="glProgramUniform1fv"/>
+ <command name="glProgramUniform1d"/>
+ <command name="glProgramUniform1dv"/>
+ <command name="glProgramUniform1ui"/>
+ <command name="glProgramUniform1uiv"/>
+ <command name="glProgramUniform2i"/>
+ <command name="glProgramUniform2iv"/>
+ <command name="glProgramUniform2f"/>
+ <command name="glProgramUniform2fv"/>
+ <command name="glProgramUniform2d"/>
+ <command name="glProgramUniform2dv"/>
+ <command name="glProgramUniform2ui"/>
+ <command name="glProgramUniform2uiv"/>
+ <command name="glProgramUniform3i"/>
+ <command name="glProgramUniform3iv"/>
+ <command name="glProgramUniform3f"/>
+ <command name="glProgramUniform3fv"/>
+ <command name="glProgramUniform3d"/>
+ <command name="glProgramUniform3dv"/>
+ <command name="glProgramUniform3ui"/>
+ <command name="glProgramUniform3uiv"/>
+ <command name="glProgramUniform4i"/>
+ <command name="glProgramUniform4iv"/>
+ <command name="glProgramUniform4f"/>
+ <command name="glProgramUniform4fv"/>
+ <command name="glProgramUniform4d"/>
+ <command name="glProgramUniform4dv"/>
+ <command name="glProgramUniform4ui"/>
+ <command name="glProgramUniform4uiv"/>
+ <command name="glProgramUniformMatrix2fv"/>
+ <command name="glProgramUniformMatrix3fv"/>
+ <command name="glProgramUniformMatrix4fv"/>
+ <command name="glProgramUniformMatrix2dv"/>
+ <command name="glProgramUniformMatrix3dv"/>
+ <command name="glProgramUniformMatrix4dv"/>
+ <command name="glProgramUniformMatrix2x3fv"/>
+ <command name="glProgramUniformMatrix3x2fv"/>
+ <command name="glProgramUniformMatrix2x4fv"/>
+ <command name="glProgramUniformMatrix4x2fv"/>
+ <command name="glProgramUniformMatrix3x4fv"/>
+ <command name="glProgramUniformMatrix4x3fv"/>
+ <command name="glProgramUniformMatrix2x3dv"/>
+ <command name="glProgramUniformMatrix3x2dv"/>
+ <command name="glProgramUniformMatrix2x4dv"/>
+ <command name="glProgramUniformMatrix4x2dv"/>
+ <command name="glProgramUniformMatrix3x4dv"/>
+ <command name="glProgramUniformMatrix4x3dv"/>
+ <command name="glValidateProgramPipeline"/>
+ <command name="glGetProgramPipelineInfoLog"/>
+ </require>
+ <require comment="Reuse commands from ARB_shader_precision (none)">
+ </require>
+ <require comment="Reuse commands from ARB_vertex_attrib_64bit">
+ <command name="glVertexAttribL1d"/>
+ <command name="glVertexAttribL2d"/>
+ <command name="glVertexAttribL3d"/>
+ <command name="glVertexAttribL4d"/>
+ <command name="glVertexAttribL1dv"/>
+ <command name="glVertexAttribL2dv"/>
+ <command name="glVertexAttribL3dv"/>
+ <command name="glVertexAttribL4dv"/>
+ <command name="glVertexAttribLPointer"/>
+ <command name="glGetVertexAttribLdv"/>
+ </require>
+ <require comment="Reuse commands from ARB_viewport_array">
+ <command name="glViewportArrayv"/>
+ <command name="glViewportIndexedf"/>
+ <command name="glViewportIndexedfv"/>
+ <command name="glScissorArrayv"/>
+ <command name="glScissorIndexed"/>
+ <command name="glScissorIndexedv"/>
+ <command name="glDepthRangeArrayv"/>
+ <command name="glDepthRangeIndexed"/>
+ <command name="glGetFloati_v"/>
+ <command name="glGetDoublei_v"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_2" number="4.2">
+ <require comment="Reuse tokens from ARB_base_instance (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_shading_language_420pack (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_transform_feedback_instanced (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_compressed_texture_pixel_storage">
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_SIZE"/>
+ </require>
+ <require comment="Reuse tokens from ARB_conservative_depth (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_internalformat_query">
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_map_buffer_alignment">
+ <enum name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shader_atomic_counters">
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shader_image_load_store">
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_MAX_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum name="GL_IMAGE_BINDING_NAME"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum name="GL_IMAGE_BINDING_LAYER"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum name="GL_IMAGE_1D"/>
+ <enum name="GL_IMAGE_2D"/>
+ <enum name="GL_IMAGE_3D"/>
+ <enum name="GL_IMAGE_2D_RECT"/>
+ <enum name="GL_IMAGE_CUBE"/>
+ <enum name="GL_IMAGE_BUFFER"/>
+ <enum name="GL_IMAGE_1D_ARRAY"/>
+ <enum name="GL_IMAGE_2D_ARRAY"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_IMAGE_1D"/>
+ <enum name="GL_INT_IMAGE_2D"/>
+ <enum name="GL_INT_IMAGE_3D"/>
+ <enum name="GL_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_INT_IMAGE_CUBE"/>
+ <enum name="GL_INT_IMAGE_BUFFER"/>
+ <enum name="GL_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_IMAGE_SAMPLES"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shading_language_packing (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_texture_compression_bptc">
+ <enum name="GL_COMPRESSED_RGBA_BPTC_UNORM"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM"/>
+ <enum name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT"/>
+ <enum name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_texture_storage">
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ </require>
+ <require comment="Reuse commands from ARB_base_instance">
+ <command name="glDrawArraysInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseVertexBaseInstance"/>
+ </require>
+ <require comment="Reuse commands from ARB_compressed_texture_pixel_storage (none)">
+ </require>
+ <require comment="Reuse commands from ARB_conservative_depth (none)">
+ </require>
+ <require comment="Reuse commands from ARB_internalformat_query">
+ <command name="glGetInternalformativ"/>
+ </require>
+ <require comment="Reuse commands from ARB_map_buffer_alignment (none)">
+ </require>
+ <require comment="Reuse commands from ARB_shader_atomic_counters">
+ <command name="glGetActiveAtomicCounterBufferiv"/>
+ </require>
+ <require comment="Reuse commands from ARB_shader_image_load_store">
+ <command name="glBindImageTexture"/>
+ <command name="glMemoryBarrier"/>
+ </require>
+ <require comment="Reuse commands from ARB_shading_language_420pack (none)">
+ </require>
+ <require comment="Reuse commands from ARB_shading_language_packing (none)">
+ </require>
+ <require comment="Reuse commands from ARB_texture_storage">
+ <command name="glTexStorage1D"/>
+ <command name="glTexStorage2D"/>
+ <command name="glTexStorage3D"/>
+ </require>
+ <require comment="Reuse commands from ARB_transform_feedback_instanced">
+ <command name="glDrawTransformFeedbackInstanced"/>
+ <command name="glDrawTransformFeedbackStreamInstanced"/>
+ </require>
+ <!-- Deprecated in OpenGL 4.2 core;
+ deprecate tag not defined/supported yet
+ <deprecate profile="core">
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ </deprecate>
+ -->
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_3" number="4.3">
+ <require>
+ <enum name="GL_NUM_SHADING_LANGUAGE_VERSIONS"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_LONG"/>
+ </require>
+ <require comment="Reuse tokens from ARB_arrays_of_arrays (none, GLSL only)">
+ </require>
+ <require comment="Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only)">
+ </require>
+ <require comment="Reuse tokens from ARB_shader_image_size (none, GLSL only)">
+ </require>
+ <require comment="Reuse tokens from ARB_ES3_compatibility">
+ <enum name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum name="GL_MAX_ELEMENT_INDEX"/>
+ </require>
+ <require comment="Reuse tokens from ARB_clear_buffer_object (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_compute_shader">
+ <enum name="GL_COMPUTE_SHADER"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ <enum name="GL_COMPUTE_SHADER_BIT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_copy_image (none)">
+ </require>
+ <require comment="Reuse tokens from KHR_debug">
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+ <enum name="GL_DEBUG_SOURCE_API"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER"/>
+ <enum name="GL_DEBUG_TYPE_ERROR"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE"/>
+ <enum name="GL_DEBUG_TYPE_OTHER"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW"/>
+ <enum name="GL_DEBUG_TYPE_MARKER"/>
+ <enum name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+ <enum name="GL_DEBUG_TYPE_POP_GROUP"/>
+ <enum name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+ <enum name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_BUFFER"/>
+ <enum name="GL_SHADER"/>
+ <enum name="GL_PROGRAM"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_QUERY"/>
+ <enum name="GL_PROGRAM_PIPELINE"/>
+ <enum name="GL_SAMPLER"/>
+ <enum name="GL_MAX_LABEL_LENGTH"/>
+ <enum name="GL_DEBUG_OUTPUT"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_explicit_uniform_location">
+ <enum name="GL_MAX_UNIFORM_LOCATIONS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_framebuffer_no_attachments">
+ <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ </require>
+ <require comment="Reuse tokens from ARB_internalformat_query2">
+ <enum name="GL_INTERNALFORMAT_SUPPORTED"/>
+ <enum name="GL_INTERNALFORMAT_PREFERRED"/>
+ <enum name="GL_INTERNALFORMAT_RED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_SHARED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_RED_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
+ <enum name="GL_MAX_WIDTH"/>
+ <enum name="GL_MAX_HEIGHT"/>
+ <enum name="GL_MAX_DEPTH"/>
+ <enum name="GL_MAX_LAYERS"/>
+ <enum name="GL_MAX_COMBINED_DIMENSIONS"/>
+ <enum name="GL_COLOR_COMPONENTS"/>
+ <enum name="GL_DEPTH_COMPONENTS"/>
+ <enum name="GL_STENCIL_COMPONENTS"/>
+ <enum name="GL_COLOR_RENDERABLE"/>
+ <enum name="GL_DEPTH_RENDERABLE"/>
+ <enum name="GL_STENCIL_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
+ <enum name="GL_FRAMEBUFFER_BLEND"/>
+ <enum name="GL_READ_PIXELS"/>
+ <enum name="GL_READ_PIXELS_FORMAT"/>
+ <enum name="GL_READ_PIXELS_TYPE"/>
+ <enum name="GL_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_MIPMAP"/>
+ <enum name="GL_MANUAL_GENERATE_MIPMAP"/>
+ <enum name="GL_AUTO_GENERATE_MIPMAP"/>
+ <enum name="GL_COLOR_ENCODING"/>
+ <enum name="GL_SRGB_READ"/>
+ <enum name="GL_SRGB_WRITE"/>
+ <enum name="GL_FILTER"/>
+ <enum name="GL_VERTEX_TEXTURE"/>
+ <enum name="GL_TESS_CONTROL_TEXTURE"/>
+ <enum name="GL_TESS_EVALUATION_TEXTURE"/>
+ <enum name="GL_GEOMETRY_TEXTURE"/>
+ <enum name="GL_FRAGMENT_TEXTURE"/>
+ <enum name="GL_COMPUTE_TEXTURE"/>
+ <enum name="GL_TEXTURE_SHADOW"/>
+ <enum name="GL_TEXTURE_GATHER"/>
+ <enum name="GL_TEXTURE_GATHER_SHADOW"/>
+ <enum name="GL_SHADER_IMAGE_LOAD"/>
+ <enum name="GL_SHADER_IMAGE_STORE"/>
+ <enum name="GL_SHADER_IMAGE_ATOMIC"/>
+ <enum name="GL_IMAGE_TEXEL_SIZE"/>
+ <enum name="GL_IMAGE_COMPATIBILITY_CLASS"/>
+ <enum name="GL_IMAGE_PIXEL_FORMAT"/>
+ <enum name="GL_IMAGE_PIXEL_TYPE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_CLEAR_BUFFER"/>
+ <enum name="GL_TEXTURE_VIEW"/>
+ <enum name="GL_VIEW_COMPATIBILITY_CLASS"/>
+ <enum name="GL_FULL_SUPPORT"/>
+ <enum name="GL_CAVEAT_SUPPORT"/>
+ <enum name="GL_IMAGE_CLASS_4_X_32"/>
+ <enum name="GL_IMAGE_CLASS_2_X_32"/>
+ <enum name="GL_IMAGE_CLASS_1_X_32"/>
+ <enum name="GL_IMAGE_CLASS_4_X_16"/>
+ <enum name="GL_IMAGE_CLASS_2_X_16"/>
+ <enum name="GL_IMAGE_CLASS_1_X_16"/>
+ <enum name="GL_IMAGE_CLASS_4_X_8"/>
+ <enum name="GL_IMAGE_CLASS_2_X_8"/>
+ <enum name="GL_IMAGE_CLASS_1_X_8"/>
+ <enum name="GL_IMAGE_CLASS_11_11_10"/>
+ <enum name="GL_IMAGE_CLASS_10_10_10_2"/>
+ <enum name="GL_VIEW_CLASS_128_BITS"/>
+ <enum name="GL_VIEW_CLASS_96_BITS"/>
+ <enum name="GL_VIEW_CLASS_64_BITS"/>
+ <enum name="GL_VIEW_CLASS_48_BITS"/>
+ <enum name="GL_VIEW_CLASS_32_BITS"/>
+ <enum name="GL_VIEW_CLASS_24_BITS"/>
+ <enum name="GL_VIEW_CLASS_16_BITS"/>
+ <enum name="GL_VIEW_CLASS_8_BITS"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGB"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT3_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT5_RGBA"/>
+ <enum name="GL_VIEW_CLASS_RGTC1_RED"/>
+ <enum name="GL_VIEW_CLASS_RGTC2_RG"/>
+ <enum name="GL_VIEW_CLASS_BPTC_UNORM"/>
+ <enum name="GL_VIEW_CLASS_BPTC_FLOAT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_invalidate_subdata (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_multi_draw_indirect (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_program_interface_query">
+ <enum name="GL_UNIFORM"/>
+ <enum name="GL_UNIFORM_BLOCK"/>
+ <enum name="GL_PROGRAM_INPUT"/>
+ <enum name="GL_PROGRAM_OUTPUT"/>
+ <enum name="GL_BUFFER_VARIABLE"/>
+ <enum name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum name="GL_VERTEX_SUBROUTINE"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE"/>
+ <enum name="GL_COMPUTE_SUBROUTINE"/>
+ <enum name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum name="GL_ACTIVE_RESOURCES"/>
+ <enum name="GL_MAX_NAME_LENGTH"/>
+ <enum name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_NAME_LENGTH"/>
+ <enum name="GL_TYPE"/>
+ <enum name="GL_ARRAY_SIZE"/>
+ <enum name="GL_OFFSET"/>
+ <enum name="GL_BLOCK_INDEX"/>
+ <enum name="GL_ARRAY_STRIDE"/>
+ <enum name="GL_MATRIX_STRIDE"/>
+ <enum name="GL_IS_ROW_MAJOR"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_BUFFER_BINDING"/>
+ <enum name="GL_BUFFER_DATA_SIZE"/>
+ <enum name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_ACTIVE_VARIABLES"/>
+ <enum name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum name="GL_LOCATION"/>
+ <enum name="GL_LOCATION_INDEX"/>
+ <enum name="GL_IS_PER_PATCH"/>
+ </require>
+ <require comment="Reuse tokens from ARB_robust_buffer_access_behavior (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_shader_storage_buffer_object">
+ <enum name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES"/>
+ </require>
+ <require comment="Reuse tokens from ARB_stencil_texturing">
+ <enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ </require>
+ <require comment="Reuse tokens from ARB_texture_buffer_range">
+ <enum name="GL_TEXTURE_BUFFER_OFFSET"/>
+ <enum name="GL_TEXTURE_BUFFER_SIZE"/>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_texture_query_levels (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_texture_storage_multisample (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_texture_view">
+ <enum name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LEVELS"/>
+ <enum name="GL_TEXTURE_VIEW_MIN_LAYER"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LAYERS"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_vertex_attrib_binding">
+ <enum name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ <enum name="GL_VERTEX_BINDING_BUFFER" comment="Added in 2013/10/22 update to the spec"/>
+ </require>
+ <require comment="Reuse commands from ARB_arrays_of_arrays (none, GLSL only)">
+ </require>
+ <require comment="Reuse commands from ARB_clear_buffer_object">
+ <command name="glClearBufferData"/>
+ <command name="glClearBufferSubData"/>
+ </require>
+ <require comment="Reuse commands from ARB_compute_shader">
+ <command name="glDispatchCompute"/>
+ <command name="glDispatchComputeIndirect"/>
+ </require>
+ <require comment="Reuse commands from ARB_copy_image">
+ <command name="glCopyImageSubData"/>
+ </require>
+ <require comment="Reuse commands from ARB_ES3_compatibility (none)">
+ </require>
+ <require comment="Reuse commands from ARB_explicit_uniform_location (none)">
+ </require>
+ <require comment="Reuse commands from ARB_fragment_layer_viewport (none, GLSL only)">
+ </require>
+ <require comment="Reuse commands from ARB_framebuffer_no_attachments">
+ <command name="glFramebufferParameteri"/>
+ <command name="glGetFramebufferParameteriv"/>
+ </require>
+ <require comment="Reuse commands from ARB_internalformat_query2">
+ <command name="glGetInternalformati64v"/>
+ </require>
+ <require comment="Reuse commands from ARB_invalidate_subdata">
+ <command name="glInvalidateTexSubImage"/>
+ <command name="glInvalidateTexImage"/>
+ <command name="glInvalidateBufferSubData"/>
+ <command name="glInvalidateBufferData"/>
+ <command name="glInvalidateFramebuffer"/>
+ <command name="glInvalidateSubFramebuffer"/>
+ </require>
+ <require comment="Reuse commands from ARB_multi_draw_indirect">
+ <command name="glMultiDrawArraysIndirect"/>
+ <command name="glMultiDrawElementsIndirect"/>
+ </require>
+ <require comment="Reuse commands from ARB_program_interface_query">
+ <command name="glGetProgramInterfaceiv"/>
+ <command name="glGetProgramResourceIndex"/>
+ <command name="glGetProgramResourceName"/>
+ <command name="glGetProgramResourceiv"/>
+ <command name="glGetProgramResourceLocation"/>
+ <command name="glGetProgramResourceLocationIndex"/>
+ </require>
+ <require comment="Reuse commands from ARB_robust_buffer_access_behavior (none)">
+ </require>
+ <require comment="Reuse commands from ARB_shader_image_size (none, GLSL only)">
+ </require>
+ <require comment="Reuse commands from ARB_shader_storage_buffer_object">
+ <command name="glShaderStorageBlockBinding"/>
+ </require>
+ <require comment="Reuse commands from ARB_stencil_texturing (none)">
+ </require>
+ <require comment="Reuse commands from ARB_texture_buffer_range">
+ <command name="glTexBufferRange"/>
+ </require>
+ <require comment="Reuse commands from ARB_texture_query_levels (none)">
+ </require>
+ <require comment="Reuse commands from ARB_texture_storage_multisample">
+ <command name="glTexStorage2DMultisample"/>
+ <command name="glTexStorage3DMultisample"/>
+ </require>
+ <require comment="Reuse commands from ARB_texture_view">
+ <command name="glTextureView"/>
+ </require>
+ <require comment="Reuse commands from ARB_vertex_attrib_binding">
+ <command name="glBindVertexBuffer"/>
+ <command name="glVertexAttribFormat"/>
+ <command name="glVertexAttribIFormat"/>
+ <command name="glVertexAttribLFormat"/>
+ <command name="glVertexAttribBinding"/>
+ <command name="glVertexBindingDivisor"/>
+ </require>
+ <require comment="Reuse commands from KHR_debug (includes ARB_debug_output commands promoted to KHR without suffixes)">
+ <command name="glDebugMessageControl"/>
+ <command name="glDebugMessageInsert"/>
+ <command name="glDebugMessageCallback"/>
+ <command name="glGetDebugMessageLog"/>
+ <command name="glPushDebugGroup"/>
+ <command name="glPopDebugGroup"/>
+ <command name="glObjectLabel"/>
+ <command name="glGetObjectLabel"/>
+ <command name="glObjectPtrLabel"/>
+ <command name="glGetObjectPtrLabel"/>
+ <command name="glGetPointerv"/>
+ </require>
+ <require profile="compatibility" comment="KHR_debug functionality not supported in core profile">
+ <enum name="GL_DISPLAY_LIST"/>
+ </require>
+ <require profile="core" comment="Restore functionality removed in GL 3.2 core to GL 4.3. Needed for debug interface.">
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <command name="glGetPointerv"/>
+ </require>
+ <!-- Deprecated in OpenGL 4.3 core;
+ deprecate tag not defined/supported yet
+ <deprecate profile="core">
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ </deprecate>
+ -->
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_4" number="4.4">
+ <require>
+ <enum name="GL_MAX_VERTEX_ATTRIB_STRIDE"/>
+ <enum name="GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED"/>
+ <enum name="GL_TEXTURE_BUFFER_BINDING"/>
+ </require>
+ <require comment="Reuse GL_ARB_buffer_storage">
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_PERSISTENT_BIT"/>
+ <enum name="GL_MAP_COHERENT_BIT"/>
+ <enum name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum name="GL_CLIENT_STORAGE_BIT"/>
+ <enum name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_IMMUTABLE_STORAGE"/>
+ <enum name="GL_BUFFER_STORAGE_FLAGS"/>
+ <command name="glBufferStorage"/>
+ </require>
+ <require comment="Reuse GL_ARB_clear_texture">
+ <enum name="GL_CLEAR_TEXTURE"/>
+ <command name="glClearTexImage"/>
+ <command name="glClearTexSubImage"/>
+ </require>
+ <require comment="Reuse GL_ARB_enhanced_layouts">
+ <enum name="GL_LOCATION_COMPONENT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE"/>
+ </require>
+ <require comment="Reuse GL_ARB_multi_bind (none)">
+ <command name="glBindBuffersBase"/>
+ <command name="glBindBuffersRange"/>
+ <command name="glBindTextures"/>
+ <command name="glBindSamplers"/>
+ <command name="glBindImageTextures"/>
+ <command name="glBindVertexBuffers"/>
+ </require>
+ <require comment="Reuse GL_ARB_query_buffer_object">
+ <enum name="GL_QUERY_BUFFER"/>
+ <enum name="GL_QUERY_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_QUERY_BUFFER_BINDING"/>
+ <enum name="GL_QUERY_RESULT_NO_WAIT"/>
+ </require>
+ <require comment="Reuse GL_ARB_texture_mirror_clamp_to_edge">
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE"/>
+ </require>
+ <require comment="Reuse GL_ARB_texture_stencil8">
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ </require>
+ <require comment="Reuse GL_ARB_vertex_type_10f_11f_11f_rev">
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_5" number="4.5">
+ <require comment="Added robustness functionality">
+ <enum name="GL_CONTEXT_LOST"/>
+ </require>
+ <require comment="Reuse GL_ARB_clip_control">
+ <command name="glClipControl"/>
+ <enum name="GL_LOWER_LEFT"/>
+ <enum name="GL_UPPER_LEFT"/>
+ <enum name="GL_NEGATIVE_ONE_TO_ONE"/>
+ <enum name="GL_ZERO_TO_ONE"/>
+ <enum name="GL_CLIP_ORIGIN"/>
+ <enum name="GL_CLIP_DEPTH_MODE"/>
+ </require>
+ <require comment="Reuse GL_ARB_conditional_render_inverted">
+ <enum name="GL_QUERY_WAIT_INVERTED"/>
+ <enum name="GL_QUERY_NO_WAIT_INVERTED"/>
+ <enum name="GL_QUERY_BY_REGION_WAIT_INVERTED"/>
+ <enum name="GL_QUERY_BY_REGION_NO_WAIT_INVERTED"/>
+ </require>
+ <require comment="Reuse GL_ARB_cull_distance">
+ <enum name="GL_MAX_CULL_DISTANCES"/>
+ <enum name="GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES"/>
+ </require>
+ <require comment="Reuse GL_ARB_direct_state_access">
+ <enum name="GL_TEXTURE_TARGET"/>
+ <enum name="GL_QUERY_TARGET"/>
+ <enum name="GL_TEXTURE_BINDING_1D"/>
+ <enum name="GL_TEXTURE_BINDING_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE"/>
+ <enum name="GL_TEXTURE_BINDING"/>
+ <command name="glCreateTransformFeedbacks"/>
+ <command name="glTransformFeedbackBufferBase"/>
+ <command name="glTransformFeedbackBufferRange"/>
+ <command name="glGetTransformFeedbackiv"/>
+ <command name="glGetTransformFeedbacki_v"/>
+ <command name="glGetTransformFeedbacki64_v"/>
+ <command name="glCreateBuffers"/>
+ <command name="glNamedBufferStorage"/>
+ <command name="glNamedBufferData"/>
+ <command name="glNamedBufferSubData"/>
+ <command name="glCopyNamedBufferSubData"/>
+ <command name="glClearNamedBufferData"/>
+ <command name="glClearNamedBufferSubData"/>
+ <command name="glMapNamedBuffer"/>
+ <command name="glMapNamedBufferRange"/>
+ <command name="glUnmapNamedBuffer"/>
+ <command name="glFlushMappedNamedBufferRange"/>
+ <command name="glGetNamedBufferParameteriv"/>
+ <command name="glGetNamedBufferParameteri64v"/>
+ <command name="glGetNamedBufferPointerv"/>
+ <command name="glGetNamedBufferSubData"/>
+ <command name="glCreateFramebuffers"/>
+ <command name="glNamedFramebufferRenderbuffer"/>
+ <command name="glNamedFramebufferParameteri"/>
+ <command name="glNamedFramebufferTexture"/>
+ <command name="glNamedFramebufferTextureLayer"/>
+ <command name="glNamedFramebufferDrawBuffer"/>
+ <command name="glNamedFramebufferDrawBuffers"/>
+ <command name="glNamedFramebufferReadBuffer"/>
+ <command name="glInvalidateNamedFramebufferData"/>
+ <command name="glInvalidateNamedFramebufferSubData"/>
+ <command name="glClearNamedFramebufferiv"/>
+ <command name="glClearNamedFramebufferuiv"/>
+ <command name="glClearNamedFramebufferfv"/>
+ <command name="glClearNamedFramebufferfi"/>
+ <command name="glBlitNamedFramebuffer"/>
+ <command name="glCheckNamedFramebufferStatus"/>
+ <command name="glGetNamedFramebufferParameteriv"/>
+ <command name="glGetNamedFramebufferAttachmentParameteriv"/>
+ <command name="glCreateRenderbuffers"/>
+ <command name="glNamedRenderbufferStorage"/>
+ <command name="glNamedRenderbufferStorageMultisample"/>
+ <command name="glGetNamedRenderbufferParameteriv"/>
+ <command name="glCreateTextures"/>
+ <command name="glTextureBuffer"/>
+ <command name="glTextureBufferRange"/>
+ <command name="glTextureStorage1D"/>
+ <command name="glTextureStorage2D"/>
+ <command name="glTextureStorage3D"/>
+ <command name="glTextureStorage2DMultisample"/>
+ <command name="glTextureStorage3DMultisample"/>
+ <command name="glTextureSubImage1D"/>
+ <command name="glTextureSubImage2D"/>
+ <command name="glTextureSubImage3D"/>
+ <command name="glCompressedTextureSubImage1D"/>
+ <command name="glCompressedTextureSubImage2D"/>
+ <command name="glCompressedTextureSubImage3D"/>
+ <command name="glCopyTextureSubImage1D"/>
+ <command name="glCopyTextureSubImage2D"/>
+ <command name="glCopyTextureSubImage3D"/>
+ <command name="glTextureParameterf"/>
+ <command name="glTextureParameterfv"/>
+ <command name="glTextureParameteri"/>
+ <command name="glTextureParameterIiv"/>
+ <command name="glTextureParameterIuiv"/>
+ <command name="glTextureParameteriv"/>
+ <command name="glGenerateTextureMipmap"/>
+ <command name="glBindTextureUnit"/>
+ <command name="glGetTextureImage"/>
+ <command name="glGetCompressedTextureImage"/>
+ <command name="glGetTextureLevelParameterfv"/>
+ <command name="glGetTextureLevelParameteriv"/>
+ <command name="glGetTextureParameterfv"/>
+ <command name="glGetTextureParameterIiv"/>
+ <command name="glGetTextureParameterIuiv"/>
+ <command name="glGetTextureParameteriv"/>
+ <command name="glCreateVertexArrays"/>
+ <command name="glDisableVertexArrayAttrib"/>
+ <command name="glEnableVertexArrayAttrib"/>
+ <command name="glVertexArrayElementBuffer"/>
+ <command name="glVertexArrayVertexBuffer"/>
+ <command name="glVertexArrayVertexBuffers"/>
+ <command name="glVertexArrayAttribBinding"/>
+ <command name="glVertexArrayAttribFormat"/>
+ <command name="glVertexArrayAttribIFormat"/>
+ <command name="glVertexArrayAttribLFormat"/>
+ <command name="glVertexArrayBindingDivisor"/>
+ <command name="glGetVertexArrayiv"/>
+ <command name="glGetVertexArrayIndexediv"/>
+ <command name="glGetVertexArrayIndexed64iv"/>
+ <command name="glCreateSamplers"/>
+ <command name="glCreateProgramPipelines"/>
+ <command name="glCreateQueries"/>
+ </require>
+ <require comment="Reuse GL_ARB_ES3_1_compatibility">
+ <command name="glMemoryBarrierByRegion"/>
+ </require>
+ <require comment="Reuse GL_ARB_get_texture_sub_image">
+ <command name="glGetTextureSubImage"/>
+ <command name="glGetCompressedTextureSubImage"/>
+ </require>
+ <require comment="Reuse GL_ARB_robustness">
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_GUILTY_CONTEXT_RESET"/>
+ <enum name="GL_INNOCENT_CONTEXT_RESET"/>
+ <enum name="GL_UNKNOWN_CONTEXT_RESET"/>
+ <enum name="GL_RESET_NOTIFICATION_STRATEGY"/>
+ <enum name="GL_LOSE_CONTEXT_ON_RESET"/>
+ <enum name="GL_NO_RESET_NOTIFICATION"/>
+ <enum name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT"/>
+ <enum name="GL_CONTEXT_LOST"/>
+ <command name="glGetGraphicsResetStatus"/>
+ <command name="glGetnCompressedTexImage"/>
+ <command name="glGetnTexImage"/>
+ <command name="glGetnUniformdv"/>
+ <command name="glGetnUniformfv"/>
+ <command name="glGetnUniformiv"/>
+ <command name="glGetnUniformuiv"/>
+ <command name="glReadnPixels"/>
+ </require>
+ <require profile="compatibility" comment="Reuse GL_ARB_robustness">
+ <command name="glGetnMapdv"/>
+ <command name="glGetnMapfv"/>
+ <command name="glGetnMapiv"/>
+ <command name="glGetnPixelMapfv"/>
+ <command name="glGetnPixelMapuiv"/>
+ <command name="glGetnPixelMapusv"/>
+ <command name="glGetnPolygonStipple"/>
+ <command name="glGetnColorTable"/>
+ <command name="glGetnConvolutionFilter"/>
+ <command name="glGetnSeparableFilter"/>
+ <command name="glGetnHistogram"/>
+ <command name="glGetnMinmax"/>
+ </require>
+ <require comment="Reuse GL_ARB_texture_barrier">
+ <command name="glTextureBarrier"/>
+ </require>
+ <require comment="Reuse GL_KHR_context_flush_control">
+ <enum name="GL_CONTEXT_RELEASE_BEHAVIOR"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH"/>
+ </require>
+ </feature>
+
+ <!-- SECTION: OpenGL ES 1.0/1.1 API interface definitions. -->
+ <feature api="gles1" name="GL_VERSION_ES_CM_1_0" number="1.0">
+ <require>
+ <!-- Additional API definition macros - ES 1.0/1.1, common/common-lite all in one header -->
+ <enum name="GL_VERSION_ES_CL_1_0"/>
+ <enum name="GL_VERSION_ES_CM_1_1"/>
+ <enum name="GL_VERSION_ES_CL_1_1"/>
+ <type name="GLvoid" comment="No longer used in headers"/>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_NOTEQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_RESCALE_NORMAL"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_MULTISAMPLE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <enum name="GL_SAMPLE_COVERAGE"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_POINT_SIZE"/>
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_RANGE"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_RANGE"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_BLEND_DST"/>
+ <enum name="GL_BLEND_SRC"/>
+ <enum name="GL_LOGIC_OP_MODE"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_MAX_TEXTURE_UNITS"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_SAMPLE_BUFFERS"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_FIXED"/>
+ <enum name="GL_CLEAR"/>
+ <enum name="GL_AND"/>
+ <enum name="GL_AND_REVERSE"/>
+ <enum name="GL_COPY"/>
+ <enum name="GL_AND_INVERTED"/>
+ <enum name="GL_NOOP"/>
+ <enum name="GL_XOR"/>
+ <enum name="GL_OR"/>
+ <enum name="GL_NOR"/>
+ <enum name="GL_EQUIV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_OR_REVERSE"/>
+ <enum name="GL_COPY_INVERTED"/>
+ <enum name="GL_OR_INVERTED"/>
+ <enum name="GL_NAND"/>
+ <enum name="GL_SET"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_TEXTURE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_DECR"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VERSION"/>
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_ADD"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_TEXTURE0"/>
+ <enum name="GL_TEXTURE1"/>
+ <enum name="GL_TEXTURE2"/>
+ <enum name="GL_TEXTURE3"/>
+ <enum name="GL_TEXTURE4"/>
+ <enum name="GL_TEXTURE5"/>
+ <enum name="GL_TEXTURE6"/>
+ <enum name="GL_TEXTURE7"/>
+ <enum name="GL_TEXTURE8"/>
+ <enum name="GL_TEXTURE9"/>
+ <enum name="GL_TEXTURE10"/>
+ <enum name="GL_TEXTURE11"/>
+ <enum name="GL_TEXTURE12"/>
+ <enum name="GL_TEXTURE13"/>
+ <enum name="GL_TEXTURE14"/>
+ <enum name="GL_TEXTURE15"/>
+ <enum name="GL_TEXTURE16"/>
+ <enum name="GL_TEXTURE17"/>
+ <enum name="GL_TEXTURE18"/>
+ <enum name="GL_TEXTURE19"/>
+ <enum name="GL_TEXTURE20"/>
+ <enum name="GL_TEXTURE21"/>
+ <enum name="GL_TEXTURE22"/>
+ <enum name="GL_TEXTURE23"/>
+ <enum name="GL_TEXTURE24"/>
+ <enum name="GL_TEXTURE25"/>
+ <enum name="GL_TEXTURE26"/>
+ <enum name="GL_TEXTURE27"/>
+ <enum name="GL_TEXTURE28"/>
+ <enum name="GL_TEXTURE29"/>
+ <enum name="GL_TEXTURE30"/>
+ <enum name="GL_TEXTURE31"/>
+ <enum name="GL_ACTIVE_TEXTURE"/>
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum name="GL_REPEAT"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <enum name="GL_ARRAY_BUFFER"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_STATIC_DRAW"/>
+ <enum name="GL_DYNAMIC_DRAW"/>
+ <enum name="GL_BUFFER_SIZE"/>
+ <enum name="GL_BUFFER_USAGE"/>
+ <enum name="GL_SUBTRACT"/>
+ <enum name="GL_COMBINE"/>
+ <enum name="GL_COMBINE_RGB"/>
+ <enum name="GL_COMBINE_ALPHA"/>
+ <enum name="GL_RGB_SCALE"/>
+ <enum name="GL_ADD_SIGNED"/>
+ <enum name="GL_INTERPOLATE"/>
+ <enum name="GL_CONSTANT"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PREVIOUS"/>
+ <enum name="GL_OPERAND0_RGB"/>
+ <enum name="GL_OPERAND1_RGB"/>
+ <enum name="GL_OPERAND2_RGB"/>
+ <enum name="GL_OPERAND0_ALPHA"/>
+ <enum name="GL_OPERAND1_ALPHA"/>
+ <enum name="GL_OPERAND2_ALPHA"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_SRC0_RGB"/>
+ <enum name="GL_SRC1_RGB"/>
+ <enum name="GL_SRC2_RGB"/>
+ <enum name="GL_SRC0_ALPHA"/>
+ <enum name="GL_SRC1_ALPHA"/>
+ <enum name="GL_SRC2_ALPHA"/>
+ <enum name="GL_DOT3_RGB"/>
+ <enum name="GL_DOT3_RGBA"/>
+ </require>
+ <require profile="common">
+ <command name="glAlphaFunc"/>
+ <command name="glClearColor"/>
+ <command name="glClearDepthf"/>
+ <command name="glClipPlanef"/>
+ <command name="glColor4f"/>
+ <command name="glDepthRangef"/>
+ <command name="glFogf"/>
+ <command name="glFogfv"/>
+ <command name="glFrustumf"/>
+ <command name="glGetClipPlanef"/>
+ <command name="glGetFloatv"/>
+ <command name="glGetLightfv"/>
+ <command name="glGetMaterialfv"/>
+ <command name="glGetTexEnvfv"/>
+ <command name="glGetTexParameterfv"/>
+ <command name="glLightModelf"/>
+ <command name="glLightModelfv"/>
+ <command name="glLightf"/>
+ <command name="glLightfv"/>
+ <command name="glLineWidth"/>
+ <command name="glLoadMatrixf"/>
+ <command name="glMaterialf"/>
+ <command name="glMaterialfv"/>
+ <command name="glMultMatrixf"/>
+ <command name="glMultiTexCoord4f"/>
+ <command name="glNormal3f"/>
+ <command name="glOrthof"/>
+ <command name="glPointParameterf"/>
+ <command name="glPointParameterfv"/>
+ <command name="glPointSize"/>
+ <command name="glPolygonOffset"/>
+ <command name="glRotatef"/>
+ <command name="glScalef"/>
+ <command name="glTexEnvf"/>
+ <command name="glTexEnvfv"/>
+ <command name="glTexParameterf"/>
+ <command name="glTexParameterfv"/>
+ <command name="glTranslatef"/>
+ </require>
+ <require>
+ <command name="glActiveTexture"/>
+ <command name="glAlphaFuncx"/>
+ <command name="glBindBuffer"/>
+ <command name="glBindTexture"/>
+ <command name="glBlendFunc"/>
+ <command name="glBufferData"/>
+ <command name="glBufferSubData"/>
+ <command name="glClear"/>
+ <command name="glClearColorx"/>
+ <command name="glClearDepthx"/>
+ <command name="glClearStencil"/>
+ <command name="glClientActiveTexture"/>
+ <command name="glClipPlanex"/>
+ <command name="glColor4ub"/>
+ <command name="glColor4x"/>
+ <command name="glColorMask"/>
+ <command name="glColorPointer"/>
+ <command name="glCompressedTexImage2D"/>
+ <command name="glCompressedTexSubImage2D"/>
+ <command name="glCopyTexImage2D"/>
+ <command name="glCopyTexSubImage2D"/>
+ <command name="glCullFace"/>
+ <command name="glDeleteBuffers"/>
+ <command name="glDeleteTextures"/>
+ <command name="glDepthFunc"/>
+ <command name="glDepthMask"/>
+ <command name="glDepthRangex"/>
+ <command name="glDisable"/>
+ <command name="glDisableClientState"/>
+ <command name="glDrawArrays"/>
+ <command name="glDrawElements"/>
+ <command name="glEnable"/>
+ <command name="glEnableClientState"/>
+ <command name="glFinish"/>
+ <command name="glFlush"/>
+ <command name="glFogx"/>
+ <command name="glFogxv"/>
+ <command name="glFrontFace"/>
+ <command name="glFrustumx"/>
+ <command name="glGetBooleanv"/>
+ <command name="glGetBufferParameteriv"/>
+ <command name="glGetClipPlanex"/>
+ <command name="glGenBuffers"/>
+ <command name="glGenTextures"/>
+ <command name="glGetError"/>
+ <command name="glGetFixedv"/>
+ <command name="glGetIntegerv"/>
+ <command name="glGetLightxv"/>
+ <command name="glGetMaterialxv"/>
+ <command name="glGetPointerv"/>
+ <command name="glGetString"/>
+ <command name="glGetTexEnviv"/>
+ <command name="glGetTexEnvxv"/>
+ <command name="glGetTexParameteriv"/>
+ <command name="glGetTexParameterxv"/>
+ <command name="glHint"/>
+ <command name="glIsBuffer"/>
+ <command name="glIsEnabled"/>
+ <command name="glIsTexture"/>
+ <command name="glLightModelx"/>
+ <command name="glLightModelxv"/>
+ <command name="glLightx"/>
+ <command name="glLightxv"/>
+ <command name="glLineWidthx"/>
+ <command name="glLoadIdentity"/>
+ <command name="glLoadMatrixx"/>
+ <command name="glLogicOp"/>
+ <command name="glMaterialx"/>
+ <command name="glMaterialxv"/>
+ <command name="glMatrixMode"/>
+ <command name="glMultMatrixx"/>
+ <command name="glMultiTexCoord4x"/>
+ <command name="glNormal3x"/>
+ <command name="glNormalPointer"/>
+ <command name="glOrthox"/>
+ <command name="glPixelStorei"/>
+ <command name="glPointParameterx"/>
+ <command name="glPointParameterxv"/>
+ <command name="glPointSizex"/>
+ <command name="glPolygonOffsetx"/>
+ <command name="glPopMatrix"/>
+ <command name="glPushMatrix"/>
+ <command name="glReadPixels"/>
+ <command name="glRotatex"/>
+ <command name="glSampleCoverage"/>
+ <command name="glSampleCoveragex"/>
+ <command name="glScalex"/>
+ <command name="glScissor"/>
+ <command name="glShadeModel"/>
+ <command name="glStencilFunc"/>
+ <command name="glStencilMask"/>
+ <command name="glStencilOp"/>
+ <command name="glTexCoordPointer"/>
+ <command name="glTexEnvi"/>
+ <command name="glTexEnvx"/>
+ <command name="glTexEnviv"/>
+ <command name="glTexEnvxv"/>
+ <command name="glTexImage2D"/>
+ <command name="glTexParameteri"/>
+ <command name="glTexParameterx"/>
+ <command name="glTexParameteriv"/>
+ <command name="glTexParameterxv"/>
+ <command name="glTexSubImage2D"/>
+ <command name="glTranslatex"/>
+ <command name="glVertexPointer"/>
+ <command name="glViewport"/>
+ </require>
+ </feature>
+ <feature api="gles2" name="GL_ES_VERSION_2_0" number="2.0">
+ <require comment="Not used by the API, for compatibility with old gl2.h">
+ <type name="GLbyte"/>
+ <type name="GLclampf"/>
+ <type name="GLfixed"/>
+ <type name="GLshort"/>
+ <type name="GLushort"/>
+ <type name="GLvoid" comment="No longer used in headers"/>
+ </require>
+ <require comment="Not used by the API; put here so this type doesn't need to be declared in gl2ext.h">
+ <type name="GLsync"/>
+ <type name="GLint64"/>
+ <type name="GLuint64"/>
+ </require>
+ <require>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_FUNC_ADD"/>
+ <enum name="GL_BLEND_EQUATION"/>
+ <enum name="GL_BLEND_EQUATION_RGB"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum name="GL_FUNC_SUBTRACT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <enum name="GL_BLEND_DST_RGB"/>
+ <enum name="GL_BLEND_SRC_RGB"/>
+ <enum name="GL_BLEND_DST_ALPHA"/>
+ <enum name="GL_BLEND_SRC_ALPHA"/>
+ <enum name="GL_CONSTANT_COLOR"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum name="GL_CONSTANT_ALPHA"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum name="GL_BLEND_COLOR"/>
+ <enum name="GL_ARRAY_BUFFER"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_STREAM_DRAW"/>
+ <enum name="GL_STATIC_DRAW"/>
+ <enum name="GL_DYNAMIC_DRAW"/>
+ <enum name="GL_BUFFER_SIZE"/>
+ <enum name="GL_BUFFER_USAGE"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum name="GL_SAMPLE_COVERAGE"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_STENCIL_BACK_FUNC"/>
+ <enum name="GL_STENCIL_BACK_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_BACK_REF"/>
+ <enum name="GL_STENCIL_BACK_VALUE_MASK"/>
+ <enum name="GL_STENCIL_BACK_WRITEMASK"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_SAMPLE_BUFFERS"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_FIXED"/>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum name="GL_FRAGMENT_SHADER"/>
+ <enum name="GL_VERTEX_SHADER"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum name="GL_MAX_VARYING_VECTORS"/>
+ <enum name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <enum name="GL_SHADER_TYPE"/>
+ <enum name="GL_DELETE_STATUS"/>
+ <enum name="GL_LINK_STATUS"/>
+ <enum name="GL_VALIDATE_STATUS"/>
+ <enum name="GL_ATTACHED_SHADERS"/>
+ <enum name="GL_ACTIVE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_ACTIVE_ATTRIBUTES"/>
+ <enum name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <enum name="GL_SHADING_LANGUAGE_VERSION"/>
+ <enum name="GL_CURRENT_PROGRAM"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_NOTEQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_DECR"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_INCR_WRAP"/>
+ <enum name="GL_DECR_WRAP"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VERSION"/>
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ <enum name="GL_TEXTURE"/>
+ <enum name="GL_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+ <enum name="GL_TEXTURE0"/>
+ <enum name="GL_TEXTURE1"/>
+ <enum name="GL_TEXTURE2"/>
+ <enum name="GL_TEXTURE3"/>
+ <enum name="GL_TEXTURE4"/>
+ <enum name="GL_TEXTURE5"/>
+ <enum name="GL_TEXTURE6"/>
+ <enum name="GL_TEXTURE7"/>
+ <enum name="GL_TEXTURE8"/>
+ <enum name="GL_TEXTURE9"/>
+ <enum name="GL_TEXTURE10"/>
+ <enum name="GL_TEXTURE11"/>
+ <enum name="GL_TEXTURE12"/>
+ <enum name="GL_TEXTURE13"/>
+ <enum name="GL_TEXTURE14"/>
+ <enum name="GL_TEXTURE15"/>
+ <enum name="GL_TEXTURE16"/>
+ <enum name="GL_TEXTURE17"/>
+ <enum name="GL_TEXTURE18"/>
+ <enum name="GL_TEXTURE19"/>
+ <enum name="GL_TEXTURE20"/>
+ <enum name="GL_TEXTURE21"/>
+ <enum name="GL_TEXTURE22"/>
+ <enum name="GL_TEXTURE23"/>
+ <enum name="GL_TEXTURE24"/>
+ <enum name="GL_TEXTURE25"/>
+ <enum name="GL_TEXTURE26"/>
+ <enum name="GL_TEXTURE27"/>
+ <enum name="GL_TEXTURE28"/>
+ <enum name="GL_TEXTURE29"/>
+ <enum name="GL_TEXTURE30"/>
+ <enum name="GL_TEXTURE31"/>
+ <enum name="GL_ACTIVE_TEXTURE"/>
+ <enum name="GL_REPEAT"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_MIRRORED_REPEAT"/>
+ <enum name="GL_FLOAT_VEC2"/>
+ <enum name="GL_FLOAT_VEC3"/>
+ <enum name="GL_FLOAT_VEC4"/>
+ <enum name="GL_INT_VEC2"/>
+ <enum name="GL_INT_VEC3"/>
+ <enum name="GL_INT_VEC4"/>
+ <enum name="GL_BOOL"/>
+ <enum name="GL_BOOL_VEC2"/>
+ <enum name="GL_BOOL_VEC3"/>
+ <enum name="GL_BOOL_VEC4"/>
+ <enum name="GL_FLOAT_MAT2"/>
+ <enum name="GL_FLOAT_MAT3"/>
+ <enum name="GL_FLOAT_MAT4"/>
+ <enum name="GL_SAMPLER_2D"/>
+ <enum name="GL_SAMPLER_CUBE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum name="GL_COMPILE_STATUS"/>
+ <enum name="GL_INFO_LOG_LENGTH"/>
+ <enum name="GL_SHADER_SOURCE_LENGTH"/>
+ <enum name="GL_SHADER_COMPILER"/>
+ <enum name="GL_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_LOW_FLOAT"/>
+ <enum name="GL_MEDIUM_FLOAT"/>
+ <enum name="GL_HIGH_FLOAT"/>
+ <enum name="GL_LOW_INT"/>
+ <enum name="GL_MEDIUM_INT"/>
+ <enum name="GL_HIGH_INT"/>
+ <enum name="GL_FRAMEBUFFER"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_RGBA4"/>
+ <enum name="GL_RGB5_A1"/>
+ <enum name="GL_RGB565"/>
+ <enum name="GL_DEPTH_COMPONENT16"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_RENDERBUFFER_WIDTH"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum name="GL_COLOR_ATTACHMENT0"/>
+ <enum name="GL_DEPTH_ATTACHMENT"/>
+ <enum name="GL_STENCIL_ATTACHMENT"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum name="GL_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_BINDING"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <command name="glActiveTexture"/>
+ <command name="glAttachShader"/>
+ <command name="glBindAttribLocation"/>
+ <command name="glBindBuffer"/>
+ <command name="glBindFramebuffer"/>
+ <command name="glBindRenderbuffer"/>
+ <command name="glBindTexture"/>
+ <command name="glBlendColor"/>
+ <command name="glBlendEquation"/>
+ <command name="glBlendEquationSeparate"/>
+ <command name="glBlendFunc"/>
+ <command name="glBlendFuncSeparate"/>
+ <command name="glBufferData"/>
+ <command name="glBufferSubData"/>
+ <command name="glCheckFramebufferStatus"/>
+ <command name="glClear"/>
+ <command name="glClearColor"/>
+ <command name="glClearDepthf"/>
+ <command name="glClearStencil"/>
+ <command name="glColorMask"/>
+ <command name="glCompileShader"/>
+ <command name="glCompressedTexImage2D"/>
+ <command name="glCompressedTexSubImage2D"/>
+ <command name="glCopyTexImage2D"/>
+ <command name="glCopyTexSubImage2D"/>
+ <command name="glCreateProgram"/>
+ <command name="glCreateShader"/>
+ <command name="glCullFace"/>
+ <command name="glDeleteBuffers"/>
+ <command name="glDeleteFramebuffers"/>
+ <command name="glDeleteProgram"/>
+ <command name="glDeleteRenderbuffers"/>
+ <command name="glDeleteShader"/>
+ <command name="glDeleteTextures"/>
+ <command name="glDepthFunc"/>
+ <command name="glDepthMask"/>
+ <command name="glDepthRangef"/>
+ <command name="glDetachShader"/>
+ <command name="glDisable"/>
+ <command name="glDisableVertexAttribArray"/>
+ <command name="glDrawArrays"/>
+ <command name="glDrawElements"/>
+ <command name="glEnable"/>
+ <command name="glEnableVertexAttribArray"/>
+ <command name="glFinish"/>
+ <command name="glFlush"/>
+ <command name="glFramebufferRenderbuffer"/>
+ <command name="glFramebufferTexture2D"/>
+ <command name="glFrontFace"/>
+ <command name="glGenBuffers"/>
+ <command name="glGenerateMipmap"/>
+ <command name="glGenFramebuffers"/>
+ <command name="glGenRenderbuffers"/>
+ <command name="glGenTextures"/>
+ <command name="glGetActiveAttrib"/>
+ <command name="glGetActiveUniform"/>
+ <command name="glGetAttachedShaders"/>
+ <command name="glGetAttribLocation"/>
+ <command name="glGetBooleanv"/>
+ <command name="glGetBufferParameteriv"/>
+ <command name="glGetError"/>
+ <command name="glGetFloatv"/>
+ <command name="glGetFramebufferAttachmentParameteriv"/>
+ <command name="glGetIntegerv"/>
+ <command name="glGetProgramiv"/>
+ <command name="glGetProgramInfoLog"/>
+ <command name="glGetRenderbufferParameteriv"/>
+ <command name="glGetShaderiv"/>
+ <command name="glGetShaderInfoLog"/>
+ <command name="glGetShaderPrecisionFormat"/>
+ <command name="glGetShaderSource"/>
+ <command name="glGetString"/>
+ <command name="glGetTexParameterfv"/>
+ <command name="glGetTexParameteriv"/>
+ <command name="glGetUniformfv"/>
+ <command name="glGetUniformiv"/>
+ <command name="glGetUniformLocation"/>
+ <command name="glGetVertexAttribfv"/>
+ <command name="glGetVertexAttribiv"/>
+ <command name="glGetVertexAttribPointerv"/>
+ <command name="glHint"/>
+ <command name="glIsBuffer"/>
+ <command name="glIsEnabled"/>
+ <command name="glIsFramebuffer"/>
+ <command name="glIsProgram"/>
+ <command name="glIsRenderbuffer"/>
+ <command name="glIsShader"/>
+ <command name="glIsTexture"/>
+ <command name="glLineWidth"/>
+ <command name="glLinkProgram"/>
+ <command name="glPixelStorei"/>
+ <command name="glPolygonOffset"/>
+ <command name="glReadPixels"/>
+ <command name="glReleaseShaderCompiler"/>
+ <command name="glRenderbufferStorage"/>
+ <command name="glSampleCoverage"/>
+ <command name="glScissor"/>
+ <command name="glShaderBinary"/>
+ <command name="glShaderSource"/>
+ <command name="glStencilFunc"/>
+ <command name="glStencilFuncSeparate"/>
+ <command name="glStencilMask"/>
+ <command name="glStencilMaskSeparate"/>
+ <command name="glStencilOp"/>
+ <command name="glStencilOpSeparate"/>
+ <command name="glTexImage2D"/>
+ <command name="glTexParameterf"/>
+ <command name="glTexParameterfv"/>
+ <command name="glTexParameteri"/>
+ <command name="glTexParameteriv"/>
+ <command name="glTexSubImage2D"/>
+ <command name="glUniform1f"/>
+ <command name="glUniform1fv"/>
+ <command name="glUniform1i"/>
+ <command name="glUniform1iv"/>
+ <command name="glUniform2f"/>
+ <command name="glUniform2fv"/>
+ <command name="glUniform2i"/>
+ <command name="glUniform2iv"/>
+ <command name="glUniform3f"/>
+ <command name="glUniform3fv"/>
+ <command name="glUniform3i"/>
+ <command name="glUniform3iv"/>
+ <command name="glUniform4f"/>
+ <command name="glUniform4fv"/>
+ <command name="glUniform4i"/>
+ <command name="glUniform4iv"/>
+ <command name="glUniformMatrix2fv"/>
+ <command name="glUniformMatrix3fv"/>
+ <command name="glUniformMatrix4fv"/>
+ <command name="glUseProgram"/>
+ <command name="glValidateProgram"/>
+ <command name="glVertexAttrib1f"/>
+ <command name="glVertexAttrib1fv"/>
+ <command name="glVertexAttrib2f"/>
+ <command name="glVertexAttrib2fv"/>
+ <command name="glVertexAttrib3f"/>
+ <command name="glVertexAttrib3fv"/>
+ <command name="glVertexAttrib4f"/>
+ <command name="glVertexAttrib4fv"/>
+ <command name="glVertexAttribPointer"/>
+ <command name="glViewport"/>
+ </require>
+ </feature>
+ <feature api="gles2" name="GL_ES_VERSION_3_0" number="3.0">
+ <require comment="Not used by the API, for compatibility with old gl2.h">
+ <type name="GLhalf"/>
+ </require>
+ <require>
+ <enum name="GL_READ_BUFFER"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_COLOR"/>
+ <enum name="GL_DEPTH"/>
+ <enum name="GL_STENCIL"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_RGB8"/>
+ <enum name="GL_RGBA8"/>
+ <enum name="GL_RGB10_A2"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_WRAP_R"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE"/>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum name="GL_MAX_ELEMENTS_VERTICES"/>
+ <enum name="GL_MAX_ELEMENTS_INDICES"/>
+ <enum name="GL_TEXTURE_MIN_LOD"/>
+ <enum name="GL_TEXTURE_MAX_LOD"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum name="GL_MIN"/>
+ <enum name="GL_MAX"/>
+ <enum name="GL_DEPTH_COMPONENT24"/>
+ <enum name="GL_MAX_TEXTURE_LOD_BIAS"/>
+ <enum name="GL_TEXTURE_COMPARE_MODE"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC"/>
+ <enum name="GL_CURRENT_QUERY"/>
+ <enum name="GL_QUERY_RESULT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE"/>
+ <enum name="GL_BUFFER_MAPPED"/>
+ <enum name="GL_BUFFER_MAP_POINTER"/>
+ <enum name="GL_STREAM_READ"/>
+ <enum name="GL_STREAM_COPY"/>
+ <enum name="GL_STATIC_READ"/>
+ <enum name="GL_STATIC_COPY"/>
+ <enum name="GL_DYNAMIC_READ"/>
+ <enum name="GL_DYNAMIC_COPY"/>
+ <enum name="GL_MAX_DRAW_BUFFERS"/>
+ <enum name="GL_DRAW_BUFFER0"/>
+ <enum name="GL_DRAW_BUFFER1"/>
+ <enum name="GL_DRAW_BUFFER2"/>
+ <enum name="GL_DRAW_BUFFER3"/>
+ <enum name="GL_DRAW_BUFFER4"/>
+ <enum name="GL_DRAW_BUFFER5"/>
+ <enum name="GL_DRAW_BUFFER6"/>
+ <enum name="GL_DRAW_BUFFER7"/>
+ <enum name="GL_DRAW_BUFFER8"/>
+ <enum name="GL_DRAW_BUFFER9"/>
+ <enum name="GL_DRAW_BUFFER10"/>
+ <enum name="GL_DRAW_BUFFER11"/>
+ <enum name="GL_DRAW_BUFFER12"/>
+ <enum name="GL_DRAW_BUFFER13"/>
+ <enum name="GL_DRAW_BUFFER14"/>
+ <enum name="GL_DRAW_BUFFER15"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_SAMPLER_3D"/>
+ <enum name="GL_SAMPLER_2D_SHADOW"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum name="GL_PIXEL_PACK_BUFFER"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+ <enum name="GL_FLOAT_MAT2x3"/>
+ <enum name="GL_FLOAT_MAT2x4"/>
+ <enum name="GL_FLOAT_MAT3x2"/>
+ <enum name="GL_FLOAT_MAT3x4"/>
+ <enum name="GL_FLOAT_MAT4x2"/>
+ <enum name="GL_FLOAT_MAT4x3"/>
+ <enum name="GL_SRGB"/>
+ <enum name="GL_SRGB8"/>
+ <enum name="GL_SRGB8_ALPHA8"/>
+ <enum name="GL_COMPARE_REF_TO_TEXTURE"/>
+ <enum name="GL_MAJOR_VERSION"/>
+ <enum name="GL_MINOR_VERSION"/>
+ <enum name="GL_NUM_EXTENSIONS"/>
+ <enum name="GL_RGBA32F"/>
+ <enum name="GL_RGB32F"/>
+ <enum name="GL_RGBA16F"/>
+ <enum name="GL_RGB16F"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
+ <enum name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ <enum name="GL_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum name="GL_R11F_G11F_B10F"/>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ <enum name="GL_RGB9_E5"/>
+ <enum name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+ <enum name="GL_RASTERIZER_DISCARD"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS"/>
+ <enum name="GL_SEPARATE_ATTRIBS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+ <enum name="GL_RGBA32UI"/>
+ <enum name="GL_RGB32UI"/>
+ <enum name="GL_RGBA16UI"/>
+ <enum name="GL_RGB16UI"/>
+ <enum name="GL_RGBA8UI"/>
+ <enum name="GL_RGB8UI"/>
+ <enum name="GL_RGBA32I"/>
+ <enum name="GL_RGB32I"/>
+ <enum name="GL_RGBA16I"/>
+ <enum name="GL_RGB16I"/>
+ <enum name="GL_RGBA8I"/>
+ <enum name="GL_RGB8I"/>
+ <enum name="GL_RED_INTEGER"/>
+ <enum name="GL_RGB_INTEGER"/>
+ <enum name="GL_RGBA_INTEGER"/>
+ <enum name="GL_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+ <enum name="GL_SAMPLER_CUBE_SHADOW"/>
+ <enum name="GL_UNSIGNED_INT_VEC2"/>
+ <enum name="GL_UNSIGNED_INT_VEC3"/>
+ <enum name="GL_UNSIGNED_INT_VEC4"/>
+ <enum name="GL_INT_SAMPLER_2D"/>
+ <enum name="GL_INT_SAMPLER_3D"/>
+ <enum name="GL_INT_SAMPLER_CUBE"/>
+ <enum name="GL_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_BUFFER_ACCESS_FLAGS"/>
+ <enum name="GL_BUFFER_MAP_LENGTH"/>
+ <enum name="GL_BUFFER_MAP_OFFSET"/>
+ <enum name="GL_DEPTH_COMPONENT32F"/>
+ <enum name="GL_DEPTH32F_STENCIL8"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum name="GL_DEPTH_STENCIL"/>
+ <enum name="GL_UNSIGNED_INT_24_8"/>
+ <enum name="GL_DEPTH24_STENCIL8"/>
+ <enum name="GL_UNSIGNED_NORMALIZED"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_READ_FRAMEBUFFER"/>
+ <enum name="GL_DRAW_FRAMEBUFFER"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum name="GL_COLOR_ATTACHMENT1"/>
+ <enum name="GL_COLOR_ATTACHMENT2"/>
+ <enum name="GL_COLOR_ATTACHMENT3"/>
+ <enum name="GL_COLOR_ATTACHMENT4"/>
+ <enum name="GL_COLOR_ATTACHMENT5"/>
+ <enum name="GL_COLOR_ATTACHMENT6"/>
+ <enum name="GL_COLOR_ATTACHMENT7"/>
+ <enum name="GL_COLOR_ATTACHMENT8"/>
+ <enum name="GL_COLOR_ATTACHMENT9"/>
+ <enum name="GL_COLOR_ATTACHMENT10"/>
+ <enum name="GL_COLOR_ATTACHMENT11"/>
+ <enum name="GL_COLOR_ATTACHMENT12"/>
+ <enum name="GL_COLOR_ATTACHMENT13"/>
+ <enum name="GL_COLOR_ATTACHMENT14"/>
+ <enum name="GL_COLOR_ATTACHMENT15"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLES"/>
+ <enum name="GL_HALF_FLOAT"/>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <enum name="GL_RG"/>
+ <enum name="GL_RG_INTEGER"/>
+ <enum name="GL_R8"/>
+ <enum name="GL_RG8"/>
+ <enum name="GL_R16F"/>
+ <enum name="GL_R32F"/>
+ <enum name="GL_RG16F"/>
+ <enum name="GL_RG32F"/>
+ <enum name="GL_R8I"/>
+ <enum name="GL_R8UI"/>
+ <enum name="GL_R16I"/>
+ <enum name="GL_R16UI"/>
+ <enum name="GL_R32I"/>
+ <enum name="GL_R32UI"/>
+ <enum name="GL_RG8I"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16I"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RG32I"/>
+ <enum name="GL_RG32UI"/>
+ <enum name="GL_VERTEX_ARRAY_BINDING"/>
+ <enum name="GL_R8_SNORM"/>
+ <enum name="GL_RG8_SNORM"/>
+ <enum name="GL_RGB8_SNORM"/>
+ <enum name="GL_RGBA8_SNORM"/>
+ <enum name="GL_SIGNED_NORMALIZED"/>
+ <enum name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum name="GL_COPY_READ_BUFFER"/>
+ <enum name="GL_COPY_WRITE_BUFFER"/>
+ <enum name="GL_COPY_READ_BUFFER_BINDING"/>
+ <enum name="GL_COPY_WRITE_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER_START"/>
+ <enum name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum name="GL_UNIFORM_TYPE"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum name="GL_UNIFORM_OFFSET"/>
+ <enum name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_INVALID_INDEX"/>
+ <enum name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum name="GL_OBJECT_TYPE"/>
+ <enum name="GL_SYNC_CONDITION"/>
+ <enum name="GL_SYNC_STATUS"/>
+ <enum name="GL_SYNC_FLAGS"/>
+ <enum name="GL_SYNC_FENCE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum name="GL_UNSIGNALED"/>
+ <enum name="GL_SIGNALED"/>
+ <enum name="GL_ALREADY_SIGNALED"/>
+ <enum name="GL_TIMEOUT_EXPIRED"/>
+ <enum name="GL_CONDITION_SATISFIED"/>
+ <enum name="GL_WAIT_FAILED"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+ <enum name="GL_ANY_SAMPLES_PASSED"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum name="GL_SAMPLER_BINDING"/>
+ <enum name="GL_RGB10_A2UI"/>
+ <enum name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_INT_2_10_10_10_REV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_COMPRESSED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ <enum name="GL_MAX_ELEMENT_INDEX"/>
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <command name="glReadBuffer"/>
+ <command name="glDrawRangeElements"/>
+ <command name="glTexImage3D"/>
+ <command name="glTexSubImage3D"/>
+ <command name="glCopyTexSubImage3D"/>
+ <command name="glCompressedTexImage3D"/>
+ <command name="glCompressedTexSubImage3D"/>
+ <command name="glGenQueries"/>
+ <command name="glDeleteQueries"/>
+ <command name="glIsQuery"/>
+ <command name="glBeginQuery"/>
+ <command name="glEndQuery"/>
+ <command name="glGetQueryiv"/>
+ <command name="glGetQueryObjectuiv"/>
+ <command name="glUnmapBuffer"/>
+ <command name="glGetBufferPointerv"/>
+ <command name="glDrawBuffers"/>
+ <command name="glUniformMatrix2x3fv"/>
+ <command name="glUniformMatrix3x2fv"/>
+ <command name="glUniformMatrix2x4fv"/>
+ <command name="glUniformMatrix4x2fv"/>
+ <command name="glUniformMatrix3x4fv"/>
+ <command name="glUniformMatrix4x3fv"/>
+ <command name="glBlitFramebuffer"/>
+ <command name="glRenderbufferStorageMultisample"/>
+ <command name="glFramebufferTextureLayer"/>
+ <command name="glMapBufferRange"/>
+ <command name="glFlushMappedBufferRange"/>
+ <command name="glBindVertexArray"/>
+ <command name="glDeleteVertexArrays"/>
+ <command name="glGenVertexArrays"/>
+ <command name="glIsVertexArray"/>
+ <command name="glGetIntegeri_v"/>
+ <command name="glBeginTransformFeedback"/>
+ <command name="glEndTransformFeedback"/>
+ <command name="glBindBufferRange"/>
+ <command name="glBindBufferBase"/>
+ <command name="glTransformFeedbackVaryings"/>
+ <command name="glGetTransformFeedbackVarying"/>
+ <command name="glVertexAttribIPointer"/>
+ <command name="glGetVertexAttribIiv"/>
+ <command name="glGetVertexAttribIuiv"/>
+ <command name="glVertexAttribI4i"/>
+ <command name="glVertexAttribI4ui"/>
+ <command name="glVertexAttribI4iv"/>
+ <command name="glVertexAttribI4uiv"/>
+ <command name="glGetUniformuiv"/>
+ <command name="glGetFragDataLocation"/>
+ <command name="glUniform1ui"/>
+ <command name="glUniform2ui"/>
+ <command name="glUniform3ui"/>
+ <command name="glUniform4ui"/>
+ <command name="glUniform1uiv"/>
+ <command name="glUniform2uiv"/>
+ <command name="glUniform3uiv"/>
+ <command name="glUniform4uiv"/>
+ <command name="glClearBufferiv"/>
+ <command name="glClearBufferuiv"/>
+ <command name="glClearBufferfv"/>
+ <command name="glClearBufferfi"/>
+ <command name="glGetStringi"/>
+ <command name="glCopyBufferSubData"/>
+ <command name="glGetUniformIndices"/>
+ <command name="glGetActiveUniformsiv"/>
+ <command name="glGetUniformBlockIndex"/>
+ <command name="glGetActiveUniformBlockiv"/>
+ <command name="glGetActiveUniformBlockName"/>
+ <command name="glUniformBlockBinding"/>
+ <command name="glDrawArraysInstanced"/>
+ <command name="glDrawElementsInstanced"/>
+ <command name="glFenceSync"/>
+ <command name="glIsSync"/>
+ <command name="glDeleteSync"/>
+ <command name="glClientWaitSync"/>
+ <command name="glWaitSync"/>
+ <command name="glGetInteger64v"/>
+ <command name="glGetSynciv"/>
+ <command name="glGetInteger64i_v"/>
+ <command name="glGetBufferParameteri64v"/>
+ <command name="glGenSamplers"/>
+ <command name="glDeleteSamplers"/>
+ <command name="glIsSampler"/>
+ <command name="glBindSampler"/>
+ <command name="glSamplerParameteri"/>
+ <command name="glSamplerParameteriv"/>
+ <command name="glSamplerParameterf"/>
+ <command name="glSamplerParameterfv"/>
+ <command name="glGetSamplerParameteriv"/>
+ <command name="glGetSamplerParameterfv"/>
+ <command name="glVertexAttribDivisor"/>
+ <command name="glBindTransformFeedback"/>
+ <command name="glDeleteTransformFeedbacks"/>
+ <command name="glGenTransformFeedbacks"/>
+ <command name="glIsTransformFeedback"/>
+ <command name="glPauseTransformFeedback"/>
+ <command name="glResumeTransformFeedback"/>
+ <command name="glGetProgramBinary"/>
+ <command name="glProgramBinary"/>
+ <command name="glProgramParameteri"/>
+ <command name="glInvalidateFramebuffer"/>
+ <command name="glInvalidateSubFramebuffer"/>
+ <command name="glTexStorage2D"/>
+ <command name="glTexStorage3D"/>
+ <command name="glGetInternalformativ"/>
+ </require>
+ </feature>
+ <feature api="gles2" name="GL_ES_VERSION_3_1" number="3.1">
+ <!-- arrays_of_arrays features -->
+ <require/>
+ <!-- compute_shader features -->
+ <require>
+ <command name="glDispatchCompute"/>
+ <command name="glDispatchComputeIndirect"/>
+ <enum name="GL_COMPUTE_SHADER"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ <enum name="GL_COMPUTE_SHADER_BIT"/>
+ </require>
+ <!-- draw_indirect features -->
+ <require>
+ <command name="glDrawArraysIndirect"/>
+ <command name="glDrawElementsIndirect"/>
+ <enum name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ </require>
+ <!-- explicit_uniform_location features -->
+ <require>
+ <enum name="GL_MAX_UNIFORM_LOCATIONS"/>
+ </require>
+ <!-- framebuffer_no_attachments features -->
+ <require>
+ <command name="glFramebufferParameteri"/>
+ <command name="glGetFramebufferParameteriv"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ </require>
+ <!-- program_interface_query features -->
+ <require>
+ <command name="glGetProgramInterfaceiv"/>
+ <command name="glGetProgramResourceIndex"/>
+ <command name="glGetProgramResourceName"/>
+ <command name="glGetProgramResourceiv"/>
+ <command name="glGetProgramResourceLocation"/>
+ <enum name="GL_UNIFORM"/>
+ <enum name="GL_UNIFORM_BLOCK"/>
+ <enum name="GL_PROGRAM_INPUT"/>
+ <enum name="GL_PROGRAM_OUTPUT"/>
+ <enum name="GL_BUFFER_VARIABLE"/>
+ <enum name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum name="GL_ACTIVE_RESOURCES"/>
+ <enum name="GL_MAX_NAME_LENGTH"/>
+ <enum name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_NAME_LENGTH"/>
+ <enum name="GL_TYPE"/>
+ <enum name="GL_ARRAY_SIZE"/>
+ <enum name="GL_OFFSET"/>
+ <enum name="GL_BLOCK_INDEX"/>
+ <enum name="GL_ARRAY_STRIDE"/>
+ <enum name="GL_MATRIX_STRIDE"/>
+ <enum name="GL_IS_ROW_MAJOR"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_BUFFER_BINDING"/>
+ <enum name="GL_BUFFER_DATA_SIZE"/>
+ <enum name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_ACTIVE_VARIABLES"/>
+ <enum name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum name="GL_LOCATION"/>
+ </require>
+ <!-- separate_shader_objects features -->
+ <require>
+ <command name="glUseProgramStages"/>
+ <command name="glActiveShaderProgram"/>
+ <command name="glCreateShaderProgramv"/>
+ <command name="glBindProgramPipeline"/>
+ <command name="glDeleteProgramPipelines"/>
+ <command name="glGenProgramPipelines"/>
+ <command name="glIsProgramPipeline"/>
+ <command name="glGetProgramPipelineiv"/>
+ <command name="glProgramUniform1i"/>
+ <command name="glProgramUniform2i"/>
+ <command name="glProgramUniform3i"/>
+ <command name="glProgramUniform4i"/>
+ <command name="glProgramUniform1ui"/>
+ <command name="glProgramUniform2ui"/>
+ <command name="glProgramUniform3ui"/>
+ <command name="glProgramUniform4ui"/>
+ <command name="glProgramUniform1f"/>
+ <command name="glProgramUniform2f"/>
+ <command name="glProgramUniform3f"/>
+ <command name="glProgramUniform4f"/>
+ <command name="glProgramUniform1iv"/>
+ <command name="glProgramUniform2iv"/>
+ <command name="glProgramUniform3iv"/>
+ <command name="glProgramUniform4iv"/>
+ <command name="glProgramUniform1uiv"/>
+ <command name="glProgramUniform2uiv"/>
+ <command name="glProgramUniform3uiv"/>
+ <command name="glProgramUniform4uiv"/>
+ <command name="glProgramUniform1fv"/>
+ <command name="glProgramUniform2fv"/>
+ <command name="glProgramUniform3fv"/>
+ <command name="glProgramUniform4fv"/>
+ <command name="glProgramUniformMatrix2fv"/>
+ <command name="glProgramUniformMatrix3fv"/>
+ <command name="glProgramUniformMatrix4fv"/>
+ <command name="glProgramUniformMatrix2x3fv"/>
+ <command name="glProgramUniformMatrix3x2fv"/>
+ <command name="glProgramUniformMatrix2x4fv"/>
+ <command name="glProgramUniformMatrix4x2fv"/>
+ <command name="glProgramUniformMatrix3x4fv"/>
+ <command name="glProgramUniformMatrix4x3fv"/>
+ <command name="glValidateProgramPipeline"/>
+ <command name="glGetProgramPipelineInfoLog"/>
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_PROGRAM_SEPARABLE"/>
+ <enum name="GL_ACTIVE_PROGRAM"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING"/>
+ </require>
+ <!-- shader_atomic_counters features -->
+ <require>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ </require>
+ <!-- shader_bitfield_operations features -->
+ <require/>
+ <!-- shader_image_load_store features -->
+ <require>
+ <command name="glBindImageTexture"/>
+ <command name="glGetBooleani_v"/>
+ <command name="glMemoryBarrier"/>
+ <command name="glMemoryBarrierByRegion"/>
+ <enum name="GL_MAX_IMAGE_UNITS"/>
+ <enum name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ <enum name="GL_IMAGE_BINDING_NAME"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum name="GL_IMAGE_BINDING_LAYER"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_IMAGE_2D"/>
+ <enum name="GL_IMAGE_3D"/>
+ <enum name="GL_IMAGE_CUBE"/>
+ <enum name="GL_IMAGE_2D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D"/>
+ <enum name="GL_INT_IMAGE_3D"/>
+ <enum name="GL_INT_IMAGE_CUBE"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum name="GL_READ_ONLY"/>
+ <enum name="GL_WRITE_ONLY"/>
+ <enum name="GL_READ_WRITE"/>
+ </require>
+ <!-- shader_layout_binding features -->
+ <require/>
+ <!-- shader_storage_buffer_object features -->
+ <require>
+ <enum name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES"/>
+ </require>
+ <!-- stencil_texturing features -->
+ <require>
+ <enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ <enum name="GL_STENCIL_INDEX"/>
+ </require>
+ <!-- texture_gather features -->
+ <require>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ </require>
+ <!-- texture_storage_multisample features -->
+ <require>
+ <command name="glTexStorage2DMultisample"/>
+ <command name="glGetMultisamplefv"/>
+ <command name="glSampleMaski"/>
+ <command name="glGetTexLevelParameteriv"/>
+ <command name="glGetTexLevelParameterfv"/>
+ <enum name="GL_SAMPLE_POSITION"/>
+ <enum name="GL_SAMPLE_MASK"/>
+ <enum name="GL_SAMPLE_MASK_VALUE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_INTEGER_SAMPLES"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_SAMPLES"/>
+ <enum name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_TEXTURE_WIDTH"/>
+ <enum name="GL_TEXTURE_HEIGHT"/>
+ <enum name="GL_TEXTURE_DEPTH"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum name="GL_TEXTURE_RED_SIZE"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum name="GL_TEXTURE_DEPTH_SIZE"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum name="GL_TEXTURE_SHARED_SIZE"/>
+ <enum name="GL_TEXTURE_RED_TYPE"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum name="GL_TEXTURE_COMPRESSED"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ </require>
+ <!-- vertex_attrib_binding features -->
+ <require>
+ <command name="glBindVertexBuffer"/>
+ <command name="glVertexAttribFormat"/>
+ <command name="glVertexAttribIFormat"/>
+ <command name="glVertexAttribBinding"/>
+ <command name="glVertexBindingDivisor"/>
+ <enum name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum name="GL_VERTEX_BINDING_BUFFER"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_STRIDE"/>
+ </require>
+ </feature>
+
+ <!-- SECTION: OpenGL / OpenGL ES extension interface definitions -->
+ <extensions>
+ <extension name="GL_3DFX_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_3DFX"/>
+ <enum name="GL_SAMPLE_BUFFERS_3DFX"/>
+ <enum name="GL_SAMPLES_3DFX"/>
+ <enum name="GL_MULTISAMPLE_BIT_3DFX"/>
+ </require>
+ </extension>
+ <extension name="GL_3DFX_tbuffer" supported="gl">
+ <require>
+ <command name="glTbufferMask3DFX"/>
+ </require>
+ </extension>
+ <extension name="GL_3DFX_texture_compression_FXT1" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_FXT1_3DFX"/>
+ <enum name="GL_COMPRESSED_RGBA_FXT1_3DFX"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_blend_minmax_factor" supported="gl">
+ <require>
+ <enum name="GL_FACTOR_MIN_AMD"/>
+ <enum name="GL_FACTOR_MAX_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_compressed_3DC_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_3DC_X_AMD"/>
+ <enum name="GL_3DC_XY_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_compressed_ATC_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_ATC_RGB_AMD"/>
+ <enum name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD"/>
+ <enum name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_conservative_depth" supported="gl"/>
+ <extension name="GL_AMD_debug_output" supported="gl">
+ <require>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH_AMD"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH_AMD"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM_AMD"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_API_ERROR_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_DEPRECATION_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_PERFORMANCE_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_APPLICATION_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_OTHER_AMD"/>
+ <command name="glDebugMessageEnableAMD"/>
+ <command name="glDebugMessageInsertAMD"/>
+ <command name="glDebugMessageCallbackAMD"/>
+ <command name="glGetDebugMessageLogAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_depth_clamp_separate" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_CLAMP_NEAR_AMD"/>
+ <enum name="GL_DEPTH_CLAMP_FAR_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_draw_buffers_blend" supported="gl">
+ <require>
+ <command name="glBlendFuncIndexedAMD"/>
+ <command name="glBlendFuncSeparateIndexedAMD"/>
+ <command name="glBlendEquationIndexedAMD"/>
+ <command name="glBlendEquationSeparateIndexedAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_gcn_shader" supported="gl"/>
+ <extension name="GL_AMD_gpu_shader_int64" supported="gl">
+ <require>
+ <enum name="GL_INT64_NV"/>
+ <enum name="GL_UNSIGNED_INT64_NV"/>
+ <enum name="GL_INT8_NV"/>
+ <enum name="GL_INT8_VEC2_NV"/>
+ <enum name="GL_INT8_VEC3_NV"/>
+ <enum name="GL_INT8_VEC4_NV"/>
+ <enum name="GL_INT16_NV"/>
+ <enum name="GL_INT16_VEC2_NV"/>
+ <enum name="GL_INT16_VEC3_NV"/>
+ <enum name="GL_INT16_VEC4_NV"/>
+ <enum name="GL_INT64_VEC2_NV"/>
+ <enum name="GL_INT64_VEC3_NV"/>
+ <enum name="GL_INT64_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT8_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT16_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC4_NV"/>
+ <enum name="GL_FLOAT16_NV"/>
+ <enum name="GL_FLOAT16_VEC2_NV"/>
+ <enum name="GL_FLOAT16_VEC3_NV"/>
+ <enum name="GL_FLOAT16_VEC4_NV"/>
+ <command name="glUniform1i64NV"/>
+ <command name="glUniform2i64NV"/>
+ <command name="glUniform3i64NV"/>
+ <command name="glUniform4i64NV"/>
+ <command name="glUniform1i64vNV"/>
+ <command name="glUniform2i64vNV"/>
+ <command name="glUniform3i64vNV"/>
+ <command name="glUniform4i64vNV"/>
+ <command name="glUniform1ui64NV"/>
+ <command name="glUniform2ui64NV"/>
+ <command name="glUniform3ui64NV"/>
+ <command name="glUniform4ui64NV"/>
+ <command name="glUniform1ui64vNV"/>
+ <command name="glUniform2ui64vNV"/>
+ <command name="glUniform3ui64vNV"/>
+ <command name="glUniform4ui64vNV"/>
+ <command name="glGetUniformi64vNV"/>
+ <command name="glGetUniformui64vNV"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glProgramUniform1i64NV"/>
+ <command name="glProgramUniform2i64NV"/>
+ <command name="glProgramUniform3i64NV"/>
+ <command name="glProgramUniform4i64NV"/>
+ <command name="glProgramUniform1i64vNV"/>
+ <command name="glProgramUniform2i64vNV"/>
+ <command name="glProgramUniform3i64vNV"/>
+ <command name="glProgramUniform4i64vNV"/>
+ <command name="glProgramUniform1ui64NV"/>
+ <command name="glProgramUniform2ui64NV"/>
+ <command name="glProgramUniform3ui64NV"/>
+ <command name="glProgramUniform4ui64NV"/>
+ <command name="glProgramUniform1ui64vNV"/>
+ <command name="glProgramUniform2ui64vNV"/>
+ <command name="glProgramUniform3ui64vNV"/>
+ <command name="glProgramUniform4ui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_interleaved_elements" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ELEMENT_SWIZZLE_AMD"/>
+ <enum name="GL_VERTEX_ID_SWIZZLE_AMD"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RGBA8UI"/>
+ <command name="glVertexAttribParameteriAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_multi_draw_indirect" supported="gl">
+ <require>
+ <command name="glMultiDrawArraysIndirectAMD"/>
+ <command name="glMultiDrawElementsIndirectAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_name_gen_delete" supported="gl">
+ <require>
+ <enum name="GL_DATA_BUFFER_AMD"/>
+ <enum name="GL_PERFORMANCE_MONITOR_AMD"/>
+ <enum name="GL_QUERY_OBJECT_AMD"/>
+ <enum name="GL_VERTEX_ARRAY_OBJECT_AMD"/>
+ <enum name="GL_SAMPLER_OBJECT_AMD"/>
+ <command name="glGenNamesAMD"/>
+ <command name="glDeleteNamesAMD"/>
+ <command name="glIsNameAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_occlusion_query_event" supported="gl">
+ <require>
+ <enum name="GL_OCCLUSION_QUERY_EVENT_MASK_AMD"/>
+ <enum name="GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD"/>
+ <enum name="GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD"/>
+ <enum name="GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD"/>
+ <enum name="GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD"/>
+ <enum name="GL_QUERY_ALL_EVENT_BITS_AMD"/>
+ <command name="glQueryObjectParameteruiAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_performance_monitor" supported="gl|gles2">
+ <require>
+ <enum name="GL_COUNTER_TYPE_AMD"/>
+ <enum name="GL_COUNTER_RANGE_AMD"/>
+ <enum name="GL_UNSIGNED_INT64_AMD"/>
+ <enum name="GL_PERCENTAGE_AMD"/>
+ <enum name="GL_PERFMON_RESULT_AVAILABLE_AMD"/>
+ <enum name="GL_PERFMON_RESULT_SIZE_AMD"/>
+ <enum name="GL_PERFMON_RESULT_AMD"/>
+ <command name="glGetPerfMonitorGroupsAMD"/>
+ <command name="glGetPerfMonitorCountersAMD"/>
+ <command name="glGetPerfMonitorGroupStringAMD"/>
+ <command name="glGetPerfMonitorCounterStringAMD"/>
+ <command name="glGetPerfMonitorCounterInfoAMD"/>
+ <command name="glGenPerfMonitorsAMD"/>
+ <command name="glDeletePerfMonitorsAMD"/>
+ <command name="glSelectPerfMonitorCountersAMD"/>
+ <command name="glBeginPerfMonitorAMD"/>
+ <command name="glEndPerfMonitorAMD"/>
+ <command name="glGetPerfMonitorCounterDataAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_pinned_memory" supported="gl">
+ <require>
+ <enum name="GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_program_binary_Z400" supported="gles2">
+ <require>
+ <enum name="GL_Z400_BINARY_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_query_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_QUERY_BUFFER_AMD"/>
+ <enum name="GL_QUERY_BUFFER_BINDING_AMD"/>
+ <enum name="GL_QUERY_RESULT_NO_WAIT_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_sample_positions" supported="gl">
+ <require>
+ <enum name="GL_SUBSAMPLE_DISTANCE_AMD"/>
+ <command name="glSetMultisamplefvAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_seamless_cubemap_per_texture" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_shader_atomic_counter_ops" supported="gl"/>
+ <extension name="GL_AMD_shader_stencil_export" supported="gl"/>
+ <extension name="GL_AMD_shader_trinary_minmax" supported="gl"/>
+ <extension name="GL_AMD_sparse_texture" supported="gl">
+ <require>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_X_AMD"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Y_AMD"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Z_AMD"/>
+ <enum name="GL_MAX_SPARSE_TEXTURE_SIZE_AMD"/>
+ <enum name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD"/>
+ <enum name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS"/>
+ <enum name="GL_MIN_SPARSE_LEVEL_AMD"/>
+ <enum name="GL_MIN_LOD_WARNING_AMD"/>
+ <enum name="GL_TEXTURE_STORAGE_SPARSE_BIT_AMD"/>
+ <command name="glTexStorageSparseAMD"/>
+ <command name="glTextureStorageSparseAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_stencil_operation_extended" supported="gl">
+ <require>
+ <enum name="GL_SET_AMD"/>
+ <enum name="GL_REPLACE_VALUE_AMD"/>
+ <enum name="GL_STENCIL_OP_VALUE_AMD"/>
+ <enum name="GL_STENCIL_BACK_OP_VALUE_AMD"/>
+ <command name="glStencilOpValueAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_texture_texture4" supported="gl"/>
+ <extension name="GL_AMD_transform_feedback3_lines_triangles" supported="gl"/>
+ <extension name="GL_AMD_transform_feedback4" supported="gl">
+ <require>
+ <enum name="GL_STREAM_RASTERIZATION_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_vertex_shader_layer" supported="gl"/>
+ <extension name="GL_AMD_vertex_shader_tessellator" supported="gl">
+ <require>
+ <enum name="GL_SAMPLER_BUFFER_AMD"/>
+ <enum name="GL_INT_SAMPLER_BUFFER_AMD"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD"/>
+ <enum name="GL_TESSELLATION_MODE_AMD"/>
+ <enum name="GL_TESSELLATION_FACTOR_AMD"/>
+ <enum name="GL_DISCRETE_AMD"/>
+ <enum name="GL_CONTINUOUS_AMD"/>
+ <command name="glTessellationFactorAMD"/>
+ <command name="glTessellationModeAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_vertex_shader_viewport_index" supported="gl"/>
+ <extension name="GL_ANDROID_extension_pack_es31a" supported="gles2">
+ <require comment="This is an alias for the following extensions. At present gl.xml doesn't actually replicate all their interfaces here.">
+ <!--
+ KHR_debug
+ KHR_texture_compression_astc_ldr
+ KHR_blend_equation_advanced
+ OES_sample_shading
+ OES_sample_variables
+ OES_shader_image_atomic
+ OES_shader_multisample_interpolation
+ OES_texture_stencil8
+ OES_texture_storage_multisample_2d_array
+ EXT_copy_image
+ EXT_draw_buffers_indexed
+ EXT_geometry_shader
+ EXT_gpu_shader5
+ EXT_primitive_bounding_box
+ EXT_shader_io_blocks
+ EXT_tessellation_shader
+ EXT_texture_border_clamp
+ EXT_texture_buffer
+ EXT_texture_cube_map_array
+ EXT_texture_srgb_decode
+ -->
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_depth_texture" supported="gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_DEPTH_STENCIL_OES"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_INT_24_8_OES"/>
+ <enum name="GL_DEPTH_COMPONENT16"/>
+ <enum name="GL_DEPTH_COMPONENT32_OES"/>
+ <enum name="GL_DEPTH24_STENCIL8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_framebuffer_blit" supported="gles2">
+ <require>
+ <enum name="GL_READ_FRAMEBUFFER_ANGLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_ANGLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_ANGLE"/>
+ <command name="glBlitFramebufferANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_framebuffer_multisample" supported="gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_ANGLE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE"/>
+ <enum name="GL_MAX_SAMPLES_ANGLE"/>
+ <command name="glRenderbufferStorageMultisampleANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_instanced_arrays" supported="gles2">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"/>
+ <command name="glDrawArraysInstancedANGLE"/>
+ <command name="glDrawElementsInstancedANGLE"/>
+ <command name="glVertexAttribDivisorANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_pack_reverse_row_order" supported="gles2">
+ <require>
+ <enum name="GL_PACK_REVERSE_ROW_ORDER_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_PROGRAM_BINARY_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_texture_compression_dxt3" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_texture_compression_dxt5" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_texture_usage" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_USAGE_ANGLE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_translated_shader_source" supported="gles2">
+ <require>
+ <enum name="GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE"/>
+ <command name="glGetTranslatedShaderSourceANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_aux_depth_stencil" supported="gl">
+ <require>
+ <enum name="GL_AUX_DEPTH_STENCIL_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_client_storage" supported="gl">
+ <require>
+ <enum name="GL_UNPACK_CLIENT_STORAGE_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_copy_texture_levels" supported="gles1|gles2">
+ <require>
+ <command name="glCopyTextureLevelsAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_element_array" supported="gl">
+ <require>
+ <enum name="GL_ELEMENT_ARRAY_APPLE"/>
+ <enum name="GL_ELEMENT_ARRAY_TYPE_APPLE"/>
+ <enum name="GL_ELEMENT_ARRAY_POINTER_APPLE"/>
+ <command name="glElementPointerAPPLE"/>
+ <command name="glDrawElementArrayAPPLE"/>
+ <command name="glDrawRangeElementArrayAPPLE"/>
+ <command name="glMultiDrawElementArrayAPPLE"/>
+ <command name="glMultiDrawRangeElementArrayAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_fence" supported="gl">
+ <require>
+ <enum name="GL_DRAW_PIXELS_APPLE"/>
+ <enum name="GL_FENCE_APPLE"/>
+ <command name="glGenFencesAPPLE"/>
+ <command name="glDeleteFencesAPPLE"/>
+ <command name="glSetFenceAPPLE"/>
+ <command name="glIsFenceAPPLE"/>
+ <command name="glTestFenceAPPLE"/>
+ <command name="glFinishFenceAPPLE"/>
+ <command name="glTestObjectAPPLE"/>
+ <command name="glFinishObjectAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_float_pixels" supported="gl">
+ <require>
+ <enum name="GL_HALF_APPLE"/>
+ <enum name="GL_RGBA_FLOAT32_APPLE"/>
+ <enum name="GL_RGB_FLOAT32_APPLE"/>
+ <enum name="GL_ALPHA_FLOAT32_APPLE"/>
+ <enum name="GL_INTENSITY_FLOAT32_APPLE"/>
+ <enum name="GL_LUMINANCE_FLOAT32_APPLE"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT32_APPLE"/>
+ <enum name="GL_RGBA_FLOAT16_APPLE"/>
+ <enum name="GL_RGB_FLOAT16_APPLE"/>
+ <enum name="GL_ALPHA_FLOAT16_APPLE"/>
+ <enum name="GL_INTENSITY_FLOAT16_APPLE"/>
+ <enum name="GL_LUMINANCE_FLOAT16_APPLE"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT16_APPLE"/>
+ <enum name="GL_COLOR_FLOAT_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_flush_buffer_range" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_SERIALIZED_MODIFY_APPLE"/>
+ <enum name="GL_BUFFER_FLUSHING_UNMAP_APPLE"/>
+ <command name="glBufferParameteriAPPLE"/>
+ <command name="glFlushMappedBufferRangeAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_framebuffer_multisample" supported="gles1|gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_APPLE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE"/>
+ <enum name="GL_MAX_SAMPLES_APPLE"/>
+ <enum name="GL_READ_FRAMEBUFFER_APPLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_APPLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_APPLE"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_APPLE"/>
+ <command name="glRenderbufferStorageMultisampleAPPLE"/>
+ <command name="glResolveMultisampleFramebufferAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_object_purgeable" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_OBJECT_APPLE"/>
+ <enum name="GL_RELEASED_APPLE"/>
+ <enum name="GL_VOLATILE_APPLE"/>
+ <enum name="GL_RETAINED_APPLE"/>
+ <enum name="GL_UNDEFINED_APPLE"/>
+ <enum name="GL_PURGEABLE_APPLE"/>
+ <command name="glObjectPurgeableAPPLE"/>
+ <command name="glObjectUnpurgeableAPPLE"/>
+ <command name="glGetObjectParameterivAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_rgb_422" supported="gl|gles2">
+ <require>
+ <enum name="GL_RGB_422_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
+ </require>
+ <require comment="Depends on TexStorage* (EXT_texture_storage / ES 3.0 / GL 4.4 / etc.)">
+ <enum name="GL_RGB_RAW_422_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_row_bytes" supported="gl">
+ <require>
+ <enum name="GL_PACK_ROW_BYTES_APPLE"/>
+ <enum name="GL_UNPACK_ROW_BYTES_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_specular_vector" supported="gl">
+ <require>
+ <enum name="GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_sync" supported="gles1|gles2">
+ <require>
+ <enum name="GL_SYNC_OBJECT_APPLE"/>
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT_APPLE"/>
+ <enum name="GL_OBJECT_TYPE_APPLE"/>
+ <enum name="GL_SYNC_CONDITION_APPLE"/>
+ <enum name="GL_SYNC_STATUS_APPLE"/>
+ <enum name="GL_SYNC_FLAGS_APPLE"/>
+ <enum name="GL_SYNC_FENCE_APPLE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE"/>
+ <enum name="GL_UNSIGNALED_APPLE"/>
+ <enum name="GL_SIGNALED_APPLE"/>
+ <enum name="GL_ALREADY_SIGNALED_APPLE"/>
+ <enum name="GL_TIMEOUT_EXPIRED_APPLE"/>
+ <enum name="GL_CONDITION_SATISFIED_APPLE"/>
+ <enum name="GL_WAIT_FAILED_APPLE"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT_APPLE"/>
+ <enum name="GL_TIMEOUT_IGNORED_APPLE"/>
+ <command name="glFenceSyncAPPLE"/>
+ <command name="glIsSyncAPPLE"/>
+ <command name="glDeleteSyncAPPLE"/>
+ <command name="glClientWaitSyncAPPLE"/>
+ <command name="glWaitSyncAPPLE"/>
+ <command name="glGetInteger64vAPPLE"/>
+ <command name="glGetSyncivAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_2D_limited_npot" supported="gles1"/>
+ <extension name="GL_APPLE_texture_format_BGRA8888" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_EXT"/>
+ </require>
+ <require comment="Depends on TexStorage* (EXT_texture_storage / ES 3.0 / GL 4.4 / etc.)">
+ <enum name="GL_BGRA8_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_max_level" supported="gles1|gles2">
+ <require>
+ <enum name="GL_TEXTURE_MAX_LEVEL_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_range" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RANGE_LENGTH_APPLE"/>
+ <enum name="GL_TEXTURE_RANGE_POINTER_APPLE"/>
+ <enum name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+ <enum name="GL_STORAGE_PRIVATE_APPLE"/>
+ <enum name="GL_STORAGE_CACHED_APPLE"/>
+ <enum name="GL_STORAGE_SHARED_APPLE"/>
+ <command name="glTextureRangeAPPLE"/>
+ <command name="glGetTexParameterPointervAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_transform_hint" supported="gl">
+ <require>
+ <enum name="GL_TRANSFORM_HINT_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_vertex_array_object" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_BINDING_APPLE"/>
+ <command name="glBindVertexArrayAPPLE"/>
+ <command name="glDeleteVertexArraysAPPLE"/>
+ <command name="glGenVertexArraysAPPLE"/>
+ <command name="glIsVertexArrayAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_vertex_array_range" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_RANGE_APPLE"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE"/>
+ <enum name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_POINTER_APPLE"/>
+ <enum name="GL_STORAGE_CLIENT_APPLE"/>
+ <enum name="GL_STORAGE_CACHED_APPLE"/>
+ <enum name="GL_STORAGE_SHARED_APPLE"/>
+ <command name="glVertexArrayRangeAPPLE"/>
+ <command name="glFlushVertexArrayRangeAPPLE"/>
+ <command name="glVertexArrayParameteriAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_vertex_program_evaluators" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE"/>
+ <command name="glEnableVertexAttribAPPLE"/>
+ <command name="glDisableVertexAttribAPPLE"/>
+ <command name="glIsVertexAttribEnabledAPPLE"/>
+ <command name="glMapVertexAttrib1dAPPLE"/>
+ <command name="glMapVertexAttrib1fAPPLE"/>
+ <command name="glMapVertexAttrib2dAPPLE"/>
+ <command name="glMapVertexAttrib2fAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_ycbcr_422" supported="gl">
+ <require>
+ <enum name="GL_YCBCR_422_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_ES2_compatibility" supported="gl|glcore">
+ <require>
+ <enum name="GL_FIXED"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum name="GL_LOW_FLOAT"/>
+ <enum name="GL_MEDIUM_FLOAT"/>
+ <enum name="GL_HIGH_FLOAT"/>
+ <enum name="GL_LOW_INT"/>
+ <enum name="GL_MEDIUM_INT"/>
+ <enum name="GL_HIGH_INT"/>
+ <enum name="GL_SHADER_COMPILER"/>
+ <enum name="GL_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum name="GL_MAX_VARYING_VECTORS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <enum name="GL_RGB565"/>
+ <command name="glReleaseShaderCompiler"/>
+ <command name="glShaderBinary"/>
+ <command name="glGetShaderPrecisionFormat"/>
+ <command name="glDepthRangef"/>
+ <command name="glClearDepthf"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_ES3_1_compatibility" supported="gl|glcore">
+ <require>
+ <command name="glMemoryBarrierByRegion"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_ES3_compatibility" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum name="GL_MAX_ELEMENT_INDEX"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_arrays_of_arrays" supported="gl|glcore"/>
+ <extension name="GL_ARB_base_instance" supported="gl|glcore">
+ <require>
+ <command name="glDrawArraysInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseVertexBaseInstance"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_bindless_texture" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNSIGNED_INT64_ARB"/>
+ <command name="glGetTextureHandleARB"/>
+ <command name="glGetTextureSamplerHandleARB"/>
+ <command name="glMakeTextureHandleResidentARB"/>
+ <command name="glMakeTextureHandleNonResidentARB"/>
+ <command name="glGetImageHandleARB"/>
+ <command name="glMakeImageHandleResidentARB"/>
+ <command name="glMakeImageHandleNonResidentARB"/>
+ <command name="glUniformHandleui64ARB"/>
+ <command name="glUniformHandleui64vARB"/>
+ <command name="glProgramUniformHandleui64ARB"/>
+ <command name="glProgramUniformHandleui64vARB"/>
+ <command name="glIsTextureHandleResidentARB"/>
+ <command name="glIsImageHandleResidentARB"/>
+ <command name="glVertexAttribL1ui64ARB"/>
+ <command name="glVertexAttribL1ui64vARB"/>
+ <command name="glGetVertexAttribLui64vARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_blend_func_extended" supported="gl|glcore">
+ <require>
+ <enum name="GL_SRC1_COLOR"/>
+ <enum name="GL_SRC1_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC1_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC1_ALPHA"/>
+ <enum name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+ <command name="glBindFragDataLocationIndexed"/>
+ <command name="glGetFragDataIndex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_buffer_storage" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_PERSISTENT_BIT"/>
+ <enum name="GL_MAP_COHERENT_BIT"/>
+ <enum name="GL_DYNAMIC_STORAGE_BIT"/>
+ <enum name="GL_CLIENT_STORAGE_BIT"/>
+ <enum name="GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_IMMUTABLE_STORAGE"/>
+ <enum name="GL_BUFFER_STORAGE_FLAGS"/>
+ <command name="glBufferStorage"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_cl_event" supported="gl|glcore">
+ <require>
+ <enum name="GL_SYNC_CL_EVENT_ARB"/>
+ <enum name="GL_SYNC_CL_EVENT_COMPLETE_ARB"/>
+ <command name="glCreateSyncFromCLeventARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_clear_buffer_object" supported="gl|glcore">
+ <require>
+ <command name="glClearBufferData"/>
+ <command name="glClearBufferSubData"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_clear_texture" supported="gl|glcore">
+ <require>
+ <enum name="GL_CLEAR_TEXTURE"/>
+ <command name="glClearTexImage"/>
+ <command name="glClearTexSubImage"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_clip_control" supported="gl|glcore">
+ <require>
+ <command name="glClipControl"/>
+ <enum name="GL_LOWER_LEFT"/>
+ <enum name="GL_UPPER_LEFT"/>
+ <enum name="GL_NEGATIVE_ONE_TO_ONE"/>
+ <enum name="GL_ZERO_TO_ONE"/>
+ <enum name="GL_CLIP_ORIGIN"/>
+ <enum name="GL_CLIP_DEPTH_MODE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_color_buffer_float" supported="gl">
+ <require>
+ <enum name="GL_RGBA_FLOAT_MODE_ARB"/>
+ <enum name="GL_CLAMP_VERTEX_COLOR_ARB"/>
+ <enum name="GL_CLAMP_FRAGMENT_COLOR_ARB"/>
+ <enum name="GL_CLAMP_READ_COLOR_ARB"/>
+ <enum name="GL_FIXED_ONLY_ARB"/>
+ <command name="glClampColorARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_compatibility" supported="gl">
+ <require comment="Defines features from OpenGL 3.0 that were removed in OpenGL 3.1 - not enumerated here yet">
+ </require>
+ </extension>
+ <extension name="GL_ARB_compressed_texture_pixel_storage" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_SIZE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_compute_shader" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPUTE_SHADER"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ <enum name="GL_COMPUTE_SHADER_BIT"/>
+ <command name="glDispatchCompute"/>
+ <command name="glDispatchComputeIndirect"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_compute_variable_group_size" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB"/>
+ <enum name="GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB"/>
+ <enum name="GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB"/>
+ <enum name="GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB"/>
+ <command name="glDispatchComputeGroupSizeARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_conditional_render_inverted" supported="gl|glcore">
+ <require>
+ <enum name="GL_QUERY_WAIT_INVERTED"/>
+ <enum name="GL_QUERY_NO_WAIT_INVERTED"/>
+ <enum name="GL_QUERY_BY_REGION_WAIT_INVERTED"/>
+ <enum name="GL_QUERY_BY_REGION_NO_WAIT_INVERTED"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_conservative_depth" supported="gl|glcore"/>
+ <extension name="GL_ARB_copy_buffer" supported="gl|glcore">
+ <require>
+ <enum name="GL_COPY_READ_BUFFER_BINDING"/>
+ <enum name="GL_COPY_READ_BUFFER"/>
+ <enum name="GL_COPY_WRITE_BUFFER_BINDING"/>
+ <enum name="GL_COPY_WRITE_BUFFER"/>
+ <command name="glCopyBufferSubData"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_copy_image" supported="gl|glcore">
+ <require>
+ <command name="glCopyImageSubData"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_cull_distance" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_CULL_DISTANCES"/>
+ <enum name="GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_debug_output" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION_ARB"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_API_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER_ARB"/>
+ <enum name="GL_DEBUG_TYPE_ERROR_ARB"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY_ARB"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE_ARB"/>
+ <enum name="GL_DEBUG_TYPE_OTHER_ARB"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH_ARB"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH_ARB"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM_ARB"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW_ARB"/>
+ <command name="glDebugMessageControlARB"/>
+ <command name="glDebugMessageInsertARB"/>
+ <command name="glDebugMessageCallbackARB"/>
+ <command name="glGetDebugMessageLogARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_depth_buffer_float" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT32F"/>
+ <enum name="GL_DEPTH32F_STENCIL8"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_depth_clamp" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEPTH_CLAMP"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_depth_texture" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT16_ARB"/>
+ <enum name="GL_DEPTH_COMPONENT24_ARB"/>
+ <enum name="GL_DEPTH_COMPONENT32_ARB"/>
+ <enum name="GL_TEXTURE_DEPTH_SIZE_ARB"/>
+ <enum name="GL_DEPTH_TEXTURE_MODE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_derivative_control" supported="gl|glcore"/>
+ <extension name="GL_ARB_direct_state_access" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_TARGET"/>
+ <enum name="GL_QUERY_TARGET"/>
+ <enum name="GL_TEXTURE_BINDING_1D"/>
+ <enum name="GL_TEXTURE_BINDING_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE"/>
+ <enum name="GL_TEXTURE_BINDING"/>
+ </require>
+ <require comment="Transform Feedback object functions">
+ <command name="glCreateTransformFeedbacks"/>
+ <command name="glTransformFeedbackBufferBase"/>
+ <command name="glTransformFeedbackBufferRange"/>
+ <command name="glGetTransformFeedbackiv"/>
+ <command name="glGetTransformFeedbacki_v"/>
+ <command name="glGetTransformFeedbacki64_v"/>
+ </require>
+ <require comment="Buffer object functions">
+ <command name="glCreateBuffers"/>
+ <command name="glNamedBufferStorage"/>
+ <command name="glNamedBufferData"/>
+ <command name="glNamedBufferSubData"/>
+ <command name="glCopyNamedBufferSubData"/>
+ <command name="glClearNamedBufferData"/>
+ <command name="glClearNamedBufferSubData"/>
+ <command name="glMapNamedBuffer"/>
+ <command name="glMapNamedBufferRange"/>
+ <command name="glUnmapNamedBuffer"/>
+ <command name="glFlushMappedNamedBufferRange"/>
+ <command name="glGetNamedBufferParameteriv"/>
+ <command name="glGetNamedBufferParameteri64v"/>
+ <command name="glGetNamedBufferPointerv"/>
+ <command name="glGetNamedBufferSubData"/>
+ </require>
+ <require comment="Framebuffer object functions">
+ <command name="glCreateFramebuffers"/>
+ <command name="glNamedFramebufferRenderbuffer"/>
+ <command name="glNamedFramebufferParameteri"/>
+ <command name="glNamedFramebufferTexture"/>
+ <command name="glNamedFramebufferTextureLayer"/>
+ <command name="glNamedFramebufferDrawBuffer"/>
+ <command name="glNamedFramebufferDrawBuffers"/>
+ <command name="glNamedFramebufferReadBuffer"/>
+ <command name="glInvalidateNamedFramebufferData"/>
+ <command name="glInvalidateNamedFramebufferSubData"/>
+ <command name="glClearNamedFramebufferiv"/>
+ <command name="glClearNamedFramebufferuiv"/>
+ <command name="glClearNamedFramebufferfv"/>
+ <command name="glClearNamedFramebufferfi"/>
+ <command name="glBlitNamedFramebuffer"/>
+ <command name="glCheckNamedFramebufferStatus"/>
+ <command name="glGetNamedFramebufferParameteriv"/>
+ <command name="glGetNamedFramebufferAttachmentParameteriv"/>
+ </require>
+ <require comment="Renderbuffer object functions">
+ <command name="glCreateRenderbuffers"/>
+ <command name="glNamedRenderbufferStorage"/>
+ <command name="glNamedRenderbufferStorageMultisample"/>
+ <command name="glGetNamedRenderbufferParameteriv"/>
+ </require>
+ <require comment="Texture object functions">
+ <command name="glCreateTextures"/>
+ <command name="glTextureBuffer"/>
+ <command name="glTextureBufferRange"/>
+ <command name="glTextureStorage1D"/>
+ <command name="glTextureStorage2D"/>
+ <command name="glTextureStorage3D"/>
+ <command name="glTextureStorage2DMultisample"/>
+ <command name="glTextureStorage3DMultisample"/>
+ <command name="glTextureSubImage1D"/>
+ <command name="glTextureSubImage2D"/>
+ <command name="glTextureSubImage3D"/>
+ <command name="glCompressedTextureSubImage1D"/>
+ <command name="glCompressedTextureSubImage2D"/>
+ <command name="glCompressedTextureSubImage3D"/>
+ <command name="glCopyTextureSubImage1D"/>
+ <command name="glCopyTextureSubImage2D"/>
+ <command name="glCopyTextureSubImage3D"/>
+ <command name="glTextureParameterf"/>
+ <command name="glTextureParameterfv"/>
+ <command name="glTextureParameteri"/>
+ <command name="glTextureParameterIiv"/>
+ <command name="glTextureParameterIuiv"/>
+ <command name="glTextureParameteriv"/>
+ <command name="glGenerateTextureMipmap"/>
+ <command name="glBindTextureUnit"/>
+ <command name="glGetTextureImage"/>
+ <command name="glGetCompressedTextureImage"/>
+ <command name="glGetTextureLevelParameterfv"/>
+ <command name="glGetTextureLevelParameteriv"/>
+ <command name="glGetTextureParameterfv"/>
+ <command name="glGetTextureParameterIiv"/>
+ <command name="glGetTextureParameterIuiv"/>
+ <command name="glGetTextureParameteriv"/>
+ </require>
+ <require comment="Vertex Array object functions">
+ <command name="glCreateVertexArrays"/>
+ <command name="glDisableVertexArrayAttrib"/>
+ <command name="glEnableVertexArrayAttrib"/>
+ <command name="glVertexArrayElementBuffer"/>
+ <command name="glVertexArrayVertexBuffer"/>
+ <command name="glVertexArrayVertexBuffers"/>
+ <command name="glVertexArrayAttribBinding"/>
+ <command name="glVertexArrayAttribFormat"/>
+ <command name="glVertexArrayAttribIFormat"/>
+ <command name="glVertexArrayAttribLFormat"/>
+ <command name="glVertexArrayBindingDivisor"/>
+ <command name="glGetVertexArrayiv"/>
+ <command name="glGetVertexArrayIndexediv"/>
+ <command name="glGetVertexArrayIndexed64iv"/>
+ </require>
+ <require comment="Sampler object functions">
+ <command name="glCreateSamplers"/>
+ </require>
+ <require comment="Program Pipeline object functions">
+ <command name="glCreateProgramPipelines"/>
+ </require>
+ <require comment="Query object functions">
+ <command name="glCreateQueries"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_buffers" supported="gl">
+ <require>
+ <enum name="GL_MAX_DRAW_BUFFERS_ARB"/>
+ <enum name="GL_DRAW_BUFFER0_ARB"/>
+ <enum name="GL_DRAW_BUFFER1_ARB"/>
+ <enum name="GL_DRAW_BUFFER2_ARB"/>
+ <enum name="GL_DRAW_BUFFER3_ARB"/>
+ <enum name="GL_DRAW_BUFFER4_ARB"/>
+ <enum name="GL_DRAW_BUFFER5_ARB"/>
+ <enum name="GL_DRAW_BUFFER6_ARB"/>
+ <enum name="GL_DRAW_BUFFER7_ARB"/>
+ <enum name="GL_DRAW_BUFFER8_ARB"/>
+ <enum name="GL_DRAW_BUFFER9_ARB"/>
+ <enum name="GL_DRAW_BUFFER10_ARB"/>
+ <enum name="GL_DRAW_BUFFER11_ARB"/>
+ <enum name="GL_DRAW_BUFFER12_ARB"/>
+ <enum name="GL_DRAW_BUFFER13_ARB"/>
+ <enum name="GL_DRAW_BUFFER14_ARB"/>
+ <enum name="GL_DRAW_BUFFER15_ARB"/>
+ <command name="glDrawBuffersARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_buffers_blend" supported="gl|glcore">
+ <require>
+ <command name="glBlendEquationiARB"/>
+ <command name="glBlendEquationSeparateiARB"/>
+ <command name="glBlendFunciARB"/>
+ <command name="glBlendFuncSeparateiARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_elements_base_vertex" supported="gl|glcore">
+ <require>
+ <command name="glDrawElementsBaseVertex"/>
+ <command name="glDrawRangeElementsBaseVertex"/>
+ <command name="glDrawElementsInstancedBaseVertex"/>
+ <command name="glMultiDrawElementsBaseVertex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_indirect" supported="gl|glcore">
+ <require>
+ <enum name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ <command name="glDrawArraysIndirect"/>
+ <command name="glDrawElementsIndirect"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_instanced" supported="gl">
+ <require>
+ <command name="glDrawArraysInstancedARB"/>
+ <command name="glDrawElementsInstancedARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_enhanced_layouts" supported="gl|glcore">
+ <require>
+ <enum name="GL_LOCATION_COMPONENT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_INDEX"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_explicit_attrib_location" supported="gl|glcore"/>
+ <extension name="GL_ARB_explicit_uniform_location" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_UNIFORM_LOCATIONS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_coord_conventions" supported="gl|glcore"/>
+ <extension name="GL_ARB_fragment_layer_viewport" supported="gl|glcore"/>
+ <extension name="GL_ARB_fragment_program" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_PROGRAM_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+ <enum name="GL_PROGRAM_LENGTH_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ARB"/>
+ <enum name="GL_PROGRAM_BINDING_ARB"/>
+ <enum name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
+ <enum name="GL_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_PROGRAM_STRING_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_POSITION_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRICES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_TEXTURE_COORDS_ARB"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_STRING_ARB"/>
+ <enum name="GL_MATRIX0_ARB"/>
+ <enum name="GL_MATRIX1_ARB"/>
+ <enum name="GL_MATRIX2_ARB"/>
+ <enum name="GL_MATRIX3_ARB"/>
+ <enum name="GL_MATRIX4_ARB"/>
+ <enum name="GL_MATRIX5_ARB"/>
+ <enum name="GL_MATRIX6_ARB"/>
+ <enum name="GL_MATRIX7_ARB"/>
+ <enum name="GL_MATRIX8_ARB"/>
+ <enum name="GL_MATRIX9_ARB"/>
+ <enum name="GL_MATRIX10_ARB"/>
+ <enum name="GL_MATRIX11_ARB"/>
+ <enum name="GL_MATRIX12_ARB"/>
+ <enum name="GL_MATRIX13_ARB"/>
+ <enum name="GL_MATRIX14_ARB"/>
+ <enum name="GL_MATRIX15_ARB"/>
+ <enum name="GL_MATRIX16_ARB"/>
+ <enum name="GL_MATRIX17_ARB"/>
+ <enum name="GL_MATRIX18_ARB"/>
+ <enum name="GL_MATRIX19_ARB"/>
+ <enum name="GL_MATRIX20_ARB"/>
+ <enum name="GL_MATRIX21_ARB"/>
+ <enum name="GL_MATRIX22_ARB"/>
+ <enum name="GL_MATRIX23_ARB"/>
+ <enum name="GL_MATRIX24_ARB"/>
+ <enum name="GL_MATRIX25_ARB"/>
+ <enum name="GL_MATRIX26_ARB"/>
+ <enum name="GL_MATRIX27_ARB"/>
+ <enum name="GL_MATRIX28_ARB"/>
+ <enum name="GL_MATRIX29_ARB"/>
+ <enum name="GL_MATRIX30_ARB"/>
+ <enum name="GL_MATRIX31_ARB"/>
+ </require>
+ <require comment="Shared with ARB_vertex_program">
+ <command name="glProgramStringARB"/>
+ <command name="glBindProgramARB"/>
+ <command name="glDeleteProgramsARB"/>
+ <command name="glGenProgramsARB"/>
+ <command name="glProgramEnvParameter4dARB"/>
+ <command name="glProgramEnvParameter4dvARB"/>
+ <command name="glProgramEnvParameter4fARB"/>
+ <command name="glProgramEnvParameter4fvARB"/>
+ <command name="glProgramLocalParameter4dARB"/>
+ <command name="glProgramLocalParameter4dvARB"/>
+ <command name="glProgramLocalParameter4fARB"/>
+ <command name="glProgramLocalParameter4fvARB"/>
+ <command name="glGetProgramEnvParameterdvARB"/>
+ <command name="glGetProgramEnvParameterfvARB"/>
+ <command name="glGetProgramLocalParameterdvARB"/>
+ <command name="glGetProgramLocalParameterfvARB"/>
+ <command name="glGetProgramivARB"/>
+ <command name="glGetProgramStringARB"/>
+ <command name="glIsProgramARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_program_shadow" supported="gl"/>
+ <extension name="GL_ARB_fragment_shader" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_ARB"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_framebuffer_no_attachments" supported="gl|glcore">
+ <require>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ <command name="glFramebufferParameteri"/>
+ <command name="glGetFramebufferParameteriv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_framebuffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum name="GL_DEPTH_STENCIL"/>
+ <enum name="GL_UNSIGNED_INT_24_8"/>
+ <enum name="GL_DEPTH24_STENCIL8"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum name="GL_TEXTURE_RED_TYPE"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum name="GL_UNSIGNED_NORMALIZED"/>
+ <enum name="GL_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_BINDING"/>
+ <enum name="GL_READ_FRAMEBUFFER"/>
+ <enum name="GL_DRAW_FRAMEBUFFER"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum name="GL_COLOR_ATTACHMENT0"/>
+ <enum name="GL_COLOR_ATTACHMENT1"/>
+ <enum name="GL_COLOR_ATTACHMENT2"/>
+ <enum name="GL_COLOR_ATTACHMENT3"/>
+ <enum name="GL_COLOR_ATTACHMENT4"/>
+ <enum name="GL_COLOR_ATTACHMENT5"/>
+ <enum name="GL_COLOR_ATTACHMENT6"/>
+ <enum name="GL_COLOR_ATTACHMENT7"/>
+ <enum name="GL_COLOR_ATTACHMENT8"/>
+ <enum name="GL_COLOR_ATTACHMENT9"/>
+ <enum name="GL_COLOR_ATTACHMENT10"/>
+ <enum name="GL_COLOR_ATTACHMENT11"/>
+ <enum name="GL_COLOR_ATTACHMENT12"/>
+ <enum name="GL_COLOR_ATTACHMENT13"/>
+ <enum name="GL_COLOR_ATTACHMENT14"/>
+ <enum name="GL_COLOR_ATTACHMENT15"/>
+ <enum name="GL_DEPTH_ATTACHMENT"/>
+ <enum name="GL_STENCIL_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_RENDERBUFFER_WIDTH"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum name="GL_STENCIL_INDEX1"/>
+ <enum name="GL_STENCIL_INDEX4"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_STENCIL_INDEX16"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLES"/>
+ <command name="glIsRenderbuffer"/>
+ <command name="glBindRenderbuffer"/>
+ <command name="glDeleteRenderbuffers"/>
+ <command name="glGenRenderbuffers"/>
+ <command name="glRenderbufferStorage"/>
+ <command name="glGetRenderbufferParameteriv"/>
+ <command name="glIsFramebuffer"/>
+ <command name="glBindFramebuffer"/>
+ <command name="glDeleteFramebuffers"/>
+ <command name="glGenFramebuffers"/>
+ <command name="glCheckFramebufferStatus"/>
+ <command name="glFramebufferTexture1D"/>
+ <command name="glFramebufferTexture2D"/>
+ <command name="glFramebufferTexture3D"/>
+ <command name="glFramebufferRenderbuffer"/>
+ <command name="glGetFramebufferAttachmentParameteriv"/>
+ <command name="glGenerateMipmap"/>
+ <command name="glBlitFramebuffer"/>
+ <command name="glRenderbufferStorageMultisample"/>
+ <command name="glFramebufferTextureLayer"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_INDEX"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_framebuffer_sRGB" supported="gl|glcore">
+ <require>
+ <enum name="GL_FRAMEBUFFER_SRGB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_geometry_shader4" supported="gl">
+ <require>
+ <enum name="GL_LINES_ADJACENCY_ARB"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_PROGRAM_POINT_SIZE_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB"/>
+ <enum name="GL_GEOMETRY_SHADER_ARB"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT_ARB"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE_ARB"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_VERTEX_VARYING_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <command name="glProgramParameteriARB"/>
+ <command name="glFramebufferTextureARB"/>
+ <command name="glFramebufferTextureLayerARB"/>
+ <command name="glFramebufferTextureFaceARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_get_program_binary" supported="gl|glcore">
+ <require>
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS"/>
+ <command name="glGetProgramBinary"/>
+ <command name="glProgramBinary"/>
+ <command name="glProgramParameteri"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_get_texture_sub_image" supported="gl|glcore">
+ <require>
+ <command name="glGetTextureSubImage"/>
+ <command name="glGetCompressedTextureSubImage"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_gpu_shader5" supported="gl|glcore">
+ <require>
+ <enum name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_gpu_shader_fp64" supported="gl|glcore">
+ <require>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_DOUBLE_VEC2"/>
+ <enum name="GL_DOUBLE_VEC3"/>
+ <enum name="GL_DOUBLE_VEC4"/>
+ <enum name="GL_DOUBLE_MAT2"/>
+ <enum name="GL_DOUBLE_MAT3"/>
+ <enum name="GL_DOUBLE_MAT4"/>
+ <enum name="GL_DOUBLE_MAT2x3"/>
+ <enum name="GL_DOUBLE_MAT2x4"/>
+ <enum name="GL_DOUBLE_MAT3x2"/>
+ <enum name="GL_DOUBLE_MAT3x4"/>
+ <enum name="GL_DOUBLE_MAT4x2"/>
+ <enum name="GL_DOUBLE_MAT4x3"/>
+ <command name="glUniform1d"/>
+ <command name="glUniform2d"/>
+ <command name="glUniform3d"/>
+ <command name="glUniform4d"/>
+ <command name="glUniform1dv"/>
+ <command name="glUniform2dv"/>
+ <command name="glUniform3dv"/>
+ <command name="glUniform4dv"/>
+ <command name="glUniformMatrix2dv"/>
+ <command name="glUniformMatrix3dv"/>
+ <command name="glUniformMatrix4dv"/>
+ <command name="glUniformMatrix2x3dv"/>
+ <command name="glUniformMatrix2x4dv"/>
+ <command name="glUniformMatrix3x2dv"/>
+ <command name="glUniformMatrix3x4dv"/>
+ <command name="glUniformMatrix4x2dv"/>
+ <command name="glUniformMatrix4x3dv"/>
+ <command name="glGetUniformdv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_half_float_pixel" supported="gl">
+ <require>
+ <type name="GLhalfARB"/>
+ <enum name="GL_HALF_FLOAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_half_float_vertex" supported="gl|glcore">
+ <require>
+ <type name="GLhalf"/>
+ <enum name="GL_HALF_FLOAT"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_imaging" supported="gl|glcore" comment="Now treating ARB_imaging as an extension, not a GL API version">
+ <require>
+ <enum name="GL_CONSTANT_COLOR"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum name="GL_CONSTANT_ALPHA"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum name="GL_BLEND_COLOR"/>
+ <enum name="GL_FUNC_ADD"/>
+ <enum name="GL_MIN"/>
+ <enum name="GL_MAX"/>
+ <enum name="GL_BLEND_EQUATION"/>
+ <enum name="GL_FUNC_SUBTRACT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <command name="glBlendColor"/>
+ <command name="glBlendEquation"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_CONVOLUTION_1D"/>
+ <enum name="GL_CONVOLUTION_2D"/>
+ <enum name="GL_SEPARABLE_2D"/>
+ <enum name="GL_CONVOLUTION_BORDER_MODE"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS"/>
+ <enum name="GL_REDUCE"/>
+ <enum name="GL_CONVOLUTION_FORMAT"/>
+ <enum name="GL_CONVOLUTION_WIDTH"/>
+ <enum name="GL_CONVOLUTION_HEIGHT"/>
+ <enum name="GL_MAX_CONVOLUTION_WIDTH"/>
+ <enum name="GL_MAX_CONVOLUTION_HEIGHT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
+ <enum name="GL_HISTOGRAM"/>
+ <enum name="GL_PROXY_HISTOGRAM"/>
+ <enum name="GL_HISTOGRAM_WIDTH"/>
+ <enum name="GL_HISTOGRAM_FORMAT"/>
+ <enum name="GL_HISTOGRAM_RED_SIZE"/>
+ <enum name="GL_HISTOGRAM_GREEN_SIZE"/>
+ <enum name="GL_HISTOGRAM_BLUE_SIZE"/>
+ <enum name="GL_HISTOGRAM_ALPHA_SIZE"/>
+ <enum name="GL_HISTOGRAM_LUMINANCE_SIZE"/>
+ <enum name="GL_HISTOGRAM_SINK"/>
+ <enum name="GL_MINMAX"/>
+ <enum name="GL_MINMAX_FORMAT"/>
+ <enum name="GL_MINMAX_SINK"/>
+ <enum name="GL_TABLE_TOO_LARGE"/>
+ <enum name="GL_COLOR_MATRIX"/>
+ <enum name="GL_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum name="GL_MAX_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
+ <enum name="GL_COLOR_TABLE"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_PROXY_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_COLOR_TABLE_SCALE"/>
+ <enum name="GL_COLOR_TABLE_BIAS"/>
+ <enum name="GL_COLOR_TABLE_FORMAT"/>
+ <enum name="GL_COLOR_TABLE_WIDTH"/>
+ <enum name="GL_COLOR_TABLE_RED_SIZE"/>
+ <enum name="GL_COLOR_TABLE_GREEN_SIZE"/>
+ <enum name="GL_COLOR_TABLE_BLUE_SIZE"/>
+ <enum name="GL_COLOR_TABLE_ALPHA_SIZE"/>
+ <enum name="GL_COLOR_TABLE_LUMINANCE_SIZE"/>
+ <enum name="GL_COLOR_TABLE_INTENSITY_SIZE"/>
+ <enum name="GL_CONSTANT_BORDER"/>
+ <enum name="GL_REPLICATE_BORDER"/>
+ <enum name="GL_CONVOLUTION_BORDER_COLOR"/>
+ <command name="glColorTable"/>
+ <command name="glColorTableParameterfv"/>
+ <command name="glColorTableParameteriv"/>
+ <command name="glCopyColorTable"/>
+ <command name="glGetColorTable"/>
+ <command name="glGetColorTableParameterfv"/>
+ <command name="glGetColorTableParameteriv"/>
+ <command name="glColorSubTable"/>
+ <command name="glCopyColorSubTable"/>
+ <command name="glConvolutionFilter1D"/>
+ <command name="glConvolutionFilter2D"/>
+ <command name="glConvolutionParameterf"/>
+ <command name="glConvolutionParameterfv"/>
+ <command name="glConvolutionParameteri"/>
+ <command name="glConvolutionParameteriv"/>
+ <command name="glCopyConvolutionFilter1D"/>
+ <command name="glCopyConvolutionFilter2D"/>
+ <command name="glGetConvolutionFilter"/>
+ <command name="glGetConvolutionParameterfv"/>
+ <command name="glGetConvolutionParameteriv"/>
+ <command name="glGetSeparableFilter"/>
+ <command name="glSeparableFilter2D"/>
+ <command name="glGetHistogram"/>
+ <command name="glGetHistogramParameterfv"/>
+ <command name="glGetHistogramParameteriv"/>
+ <command name="glGetMinmax"/>
+ <command name="glGetMinmaxParameterfv"/>
+ <command name="glGetMinmaxParameteriv"/>
+ <command name="glHistogram"/>
+ <command name="glMinmax"/>
+ <command name="glResetHistogram"/>
+ <command name="glResetMinmax"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_indirect_parameters" supported="gl|glcore">
+ <require>
+ <enum name="GL_PARAMETER_BUFFER_ARB"/>
+ <enum name="GL_PARAMETER_BUFFER_BINDING_ARB"/>
+ <command name="glMultiDrawArraysIndirectCountARB"/>
+ <command name="glMultiDrawElementsIndirectCountARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_instanced_arrays" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB"/>
+ <command name="glVertexAttribDivisorARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_internalformat_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ <command name="glGetInternalformativ"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_internalformat_query2" supported="gl|glcore">
+ <require>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_TEXTURE_RECTANGLE"/>
+ <enum name="GL_TEXTURE_BUFFER"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_COMPRESSED"/>
+ <enum name="GL_INTERNALFORMAT_SUPPORTED"/>
+ <enum name="GL_INTERNALFORMAT_PREFERRED"/>
+ <enum name="GL_INTERNALFORMAT_RED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_SHARED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_RED_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
+ <enum name="GL_MAX_WIDTH"/>
+ <enum name="GL_MAX_HEIGHT"/>
+ <enum name="GL_MAX_DEPTH"/>
+ <enum name="GL_MAX_LAYERS"/>
+ <enum name="GL_MAX_COMBINED_DIMENSIONS"/>
+ <enum name="GL_COLOR_COMPONENTS"/>
+ <enum name="GL_DEPTH_COMPONENTS"/>
+ <enum name="GL_STENCIL_COMPONENTS"/>
+ <enum name="GL_COLOR_RENDERABLE"/>
+ <enum name="GL_DEPTH_RENDERABLE"/>
+ <enum name="GL_STENCIL_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
+ <enum name="GL_FRAMEBUFFER_BLEND"/>
+ <enum name="GL_READ_PIXELS"/>
+ <enum name="GL_READ_PIXELS_FORMAT"/>
+ <enum name="GL_READ_PIXELS_TYPE"/>
+ <enum name="GL_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_MIPMAP"/>
+ <enum name="GL_MANUAL_GENERATE_MIPMAP"/>
+ <enum name="GL_AUTO_GENERATE_MIPMAP"/>
+ <enum name="GL_COLOR_ENCODING"/>
+ <enum name="GL_SRGB_READ"/>
+ <enum name="GL_SRGB_WRITE"/>
+ <enum name="GL_SRGB_DECODE_ARB"/>
+ <enum name="GL_FILTER"/>
+ <enum name="GL_VERTEX_TEXTURE"/>
+ <enum name="GL_TESS_CONTROL_TEXTURE"/>
+ <enum name="GL_TESS_EVALUATION_TEXTURE"/>
+ <enum name="GL_GEOMETRY_TEXTURE"/>
+ <enum name="GL_FRAGMENT_TEXTURE"/>
+ <enum name="GL_COMPUTE_TEXTURE"/>
+ <enum name="GL_TEXTURE_SHADOW"/>
+ <enum name="GL_TEXTURE_GATHER"/>
+ <enum name="GL_TEXTURE_GATHER_SHADOW"/>
+ <enum name="GL_SHADER_IMAGE_LOAD"/>
+ <enum name="GL_SHADER_IMAGE_STORE"/>
+ <enum name="GL_SHADER_IMAGE_ATOMIC"/>
+ <enum name="GL_IMAGE_TEXEL_SIZE"/>
+ <enum name="GL_IMAGE_COMPATIBILITY_CLASS"/>
+ <enum name="GL_IMAGE_PIXEL_FORMAT"/>
+ <enum name="GL_IMAGE_PIXEL_TYPE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_CLEAR_BUFFER"/>
+ <enum name="GL_TEXTURE_VIEW"/>
+ <enum name="GL_VIEW_COMPATIBILITY_CLASS"/>
+ <enum name="GL_FULL_SUPPORT"/>
+ <enum name="GL_CAVEAT_SUPPORT"/>
+ <enum name="GL_IMAGE_CLASS_4_X_32"/>
+ <enum name="GL_IMAGE_CLASS_2_X_32"/>
+ <enum name="GL_IMAGE_CLASS_1_X_32"/>
+ <enum name="GL_IMAGE_CLASS_4_X_16"/>
+ <enum name="GL_IMAGE_CLASS_2_X_16"/>
+ <enum name="GL_IMAGE_CLASS_1_X_16"/>
+ <enum name="GL_IMAGE_CLASS_4_X_8"/>
+ <enum name="GL_IMAGE_CLASS_2_X_8"/>
+ <enum name="GL_IMAGE_CLASS_1_X_8"/>
+ <enum name="GL_IMAGE_CLASS_11_11_10"/>
+ <enum name="GL_IMAGE_CLASS_10_10_10_2"/>
+ <enum name="GL_VIEW_CLASS_128_BITS"/>
+ <enum name="GL_VIEW_CLASS_96_BITS"/>
+ <enum name="GL_VIEW_CLASS_64_BITS"/>
+ <enum name="GL_VIEW_CLASS_48_BITS"/>
+ <enum name="GL_VIEW_CLASS_32_BITS"/>
+ <enum name="GL_VIEW_CLASS_24_BITS"/>
+ <enum name="GL_VIEW_CLASS_16_BITS"/>
+ <enum name="GL_VIEW_CLASS_8_BITS"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGB"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT3_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT5_RGBA"/>
+ <enum name="GL_VIEW_CLASS_RGTC1_RED"/>
+ <enum name="GL_VIEW_CLASS_RGTC2_RG"/>
+ <enum name="GL_VIEW_CLASS_BPTC_UNORM"/>
+ <enum name="GL_VIEW_CLASS_BPTC_FLOAT"/>
+ <command name="glGetInternalformati64v"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_invalidate_subdata" supported="gl|glcore">
+ <require>
+ <command name="glInvalidateTexSubImage"/>
+ <command name="glInvalidateTexImage"/>
+ <command name="glInvalidateBufferSubData"/>
+ <command name="glInvalidateBufferData"/>
+ <command name="glInvalidateFramebuffer"/>
+ <command name="glInvalidateSubFramebuffer"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_map_buffer_alignment" supported="gl|glcore">
+ <require>
+ <enum name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_map_buffer_range" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <command name="glMapBufferRange"/>
+ <command name="glFlushMappedBufferRange"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_matrix_palette" supported="gl">
+ <require>
+ <enum name="GL_MATRIX_PALETTE_ARB"/>
+ <enum name="GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_PALETTE_MATRICES_ARB"/>
+ <enum name="GL_CURRENT_PALETTE_MATRIX_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_INDEX_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_SIZE_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_TYPE_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_POINTER_ARB"/>
+ <command name="glCurrentPaletteMatrixARB"/>
+ <command name="glMatrixIndexubvARB"/>
+ <command name="glMatrixIndexusvARB"/>
+ <command name="glMatrixIndexuivARB"/>
+ <command name="glMatrixIndexPointerARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multi_bind" supported="gl|glcore">
+ <require>
+ <command name="glBindBuffersBase"/>
+ <command name="glBindBuffersRange"/>
+ <command name="glBindTextures"/>
+ <command name="glBindSamplers"/>
+ <command name="glBindImageTextures"/>
+ <command name="glBindVertexBuffers"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multi_draw_indirect" supported="gl|glcore">
+ <require>
+ <command name="glMultiDrawArraysIndirect"/>
+ <command name="glMultiDrawElementsIndirect"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_ARB"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE_ARB"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_ARB"/>
+ <enum name="GL_SAMPLE_COVERAGE_ARB"/>
+ <enum name="GL_SAMPLE_BUFFERS_ARB"/>
+ <enum name="GL_SAMPLES_ARB"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE_ARB"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT_ARB"/>
+ <enum name="GL_MULTISAMPLE_BIT_ARB"/>
+ <command name="glSampleCoverageARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multitexture" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE0_ARB"/>
+ <enum name="GL_TEXTURE1_ARB"/>
+ <enum name="GL_TEXTURE2_ARB"/>
+ <enum name="GL_TEXTURE3_ARB"/>
+ <enum name="GL_TEXTURE4_ARB"/>
+ <enum name="GL_TEXTURE5_ARB"/>
+ <enum name="GL_TEXTURE6_ARB"/>
+ <enum name="GL_TEXTURE7_ARB"/>
+ <enum name="GL_TEXTURE8_ARB"/>
+ <enum name="GL_TEXTURE9_ARB"/>
+ <enum name="GL_TEXTURE10_ARB"/>
+ <enum name="GL_TEXTURE11_ARB"/>
+ <enum name="GL_TEXTURE12_ARB"/>
+ <enum name="GL_TEXTURE13_ARB"/>
+ <enum name="GL_TEXTURE14_ARB"/>
+ <enum name="GL_TEXTURE15_ARB"/>
+ <enum name="GL_TEXTURE16_ARB"/>
+ <enum name="GL_TEXTURE17_ARB"/>
+ <enum name="GL_TEXTURE18_ARB"/>
+ <enum name="GL_TEXTURE19_ARB"/>
+ <enum name="GL_TEXTURE20_ARB"/>
+ <enum name="GL_TEXTURE21_ARB"/>
+ <enum name="GL_TEXTURE22_ARB"/>
+ <enum name="GL_TEXTURE23_ARB"/>
+ <enum name="GL_TEXTURE24_ARB"/>
+ <enum name="GL_TEXTURE25_ARB"/>
+ <enum name="GL_TEXTURE26_ARB"/>
+ <enum name="GL_TEXTURE27_ARB"/>
+ <enum name="GL_TEXTURE28_ARB"/>
+ <enum name="GL_TEXTURE29_ARB"/>
+ <enum name="GL_TEXTURE30_ARB"/>
+ <enum name="GL_TEXTURE31_ARB"/>
+ <enum name="GL_ACTIVE_TEXTURE_ARB"/>
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE_ARB"/>
+ <enum name="GL_MAX_TEXTURE_UNITS_ARB"/>
+ <command name="glActiveTextureARB"/>
+ <command name="glClientActiveTextureARB"/>
+ <command name="glMultiTexCoord1dARB"/>
+ <command name="glMultiTexCoord1dvARB"/>
+ <command name="glMultiTexCoord1fARB"/>
+ <command name="glMultiTexCoord1fvARB"/>
+ <command name="glMultiTexCoord1iARB"/>
+ <command name="glMultiTexCoord1ivARB"/>
+ <command name="glMultiTexCoord1sARB"/>
+ <command name="glMultiTexCoord1svARB"/>
+ <command name="glMultiTexCoord2dARB"/>
+ <command name="glMultiTexCoord2dvARB"/>
+ <command name="glMultiTexCoord2fARB"/>
+ <command name="glMultiTexCoord2fvARB"/>
+ <command name="glMultiTexCoord2iARB"/>
+ <command name="glMultiTexCoord2ivARB"/>
+ <command name="glMultiTexCoord2sARB"/>
+ <command name="glMultiTexCoord2svARB"/>
+ <command name="glMultiTexCoord3dARB"/>
+ <command name="glMultiTexCoord3dvARB"/>
+ <command name="glMultiTexCoord3fARB"/>
+ <command name="glMultiTexCoord3fvARB"/>
+ <command name="glMultiTexCoord3iARB"/>
+ <command name="glMultiTexCoord3ivARB"/>
+ <command name="glMultiTexCoord3sARB"/>
+ <command name="glMultiTexCoord3svARB"/>
+ <command name="glMultiTexCoord4dARB"/>
+ <command name="glMultiTexCoord4dvARB"/>
+ <command name="glMultiTexCoord4fARB"/>
+ <command name="glMultiTexCoord4fvARB"/>
+ <command name="glMultiTexCoord4iARB"/>
+ <command name="glMultiTexCoord4ivARB"/>
+ <command name="glMultiTexCoord4sARB"/>
+ <command name="glMultiTexCoord4svARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_occlusion_query" supported="gl">
+ <require>
+ <enum name="GL_QUERY_COUNTER_BITS_ARB"/>
+ <enum name="GL_CURRENT_QUERY_ARB"/>
+ <enum name="GL_QUERY_RESULT_ARB"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE_ARB"/>
+ <enum name="GL_SAMPLES_PASSED_ARB"/>
+ <command name="glGenQueriesARB"/>
+ <command name="glDeleteQueriesARB"/>
+ <command name="glIsQueryARB"/>
+ <command name="glBeginQueryARB"/>
+ <command name="glEndQueryARB"/>
+ <command name="glGetQueryivARB"/>
+ <command name="glGetQueryObjectivARB"/>
+ <command name="glGetQueryObjectuivARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_occlusion_query2" supported="gl|glcore">
+ <require>
+ <enum name="GL_ANY_SAMPLES_PASSED"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_pipeline_statistics_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTICES_SUBMITTED_ARB"/>
+ <enum name="GL_PRIMITIVES_SUBMITTED_ARB"/>
+ <enum name="GL_VERTEX_SHADER_INVOCATIONS_ARB"/>
+ <enum name="GL_TESS_CONTROL_SHADER_PATCHES_ARB"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB"/>
+ <enum name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB"/>
+ <enum name="GL_FRAGMENT_SHADER_INVOCATIONS_ARB"/>
+ <enum name="GL_COMPUTE_SHADER_INVOCATIONS_ARB"/>
+ <enum name="GL_CLIPPING_INPUT_PRIMITIVES_ARB"/>
+ <enum name="GL_CLIPPING_OUTPUT_PRIMITIVES_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_pixel_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_PACK_BUFFER_ARB"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_ARB"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING_ARB"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_point_parameters" supported="gl">
+ <require>
+ <enum name="GL_POINT_SIZE_MIN_ARB"/>
+ <enum name="GL_POINT_SIZE_MAX_ARB"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
+ <command name="glPointParameterfARB"/>
+ <command name="glPointParameterfvARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_point_sprite" supported="gl">
+ <require>
+ <enum name="GL_POINT_SPRITE_ARB"/>
+ <enum name="GL_COORD_REPLACE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_program_interface_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNIFORM"/>
+ <enum name="GL_UNIFORM_BLOCK"/>
+ <enum name="GL_PROGRAM_INPUT"/>
+ <enum name="GL_PROGRAM_OUTPUT"/>
+ <enum name="GL_BUFFER_VARIABLE"/>
+ <enum name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_VERTEX_SUBROUTINE"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE"/>
+ <enum name="GL_COMPUTE_SUBROUTINE"/>
+ <enum name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum name="GL_ACTIVE_RESOURCES"/>
+ <enum name="GL_MAX_NAME_LENGTH"/>
+ <enum name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_NAME_LENGTH"/>
+ <enum name="GL_TYPE"/>
+ <enum name="GL_ARRAY_SIZE"/>
+ <enum name="GL_OFFSET"/>
+ <enum name="GL_BLOCK_INDEX"/>
+ <enum name="GL_ARRAY_STRIDE"/>
+ <enum name="GL_MATRIX_STRIDE"/>
+ <enum name="GL_IS_ROW_MAJOR"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_BUFFER_BINDING"/>
+ <enum name="GL_BUFFER_DATA_SIZE"/>
+ <enum name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_ACTIVE_VARIABLES"/>
+ <enum name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum name="GL_LOCATION"/>
+ <enum name="GL_LOCATION_INDEX"/>
+ <enum name="GL_IS_PER_PATCH"/>
+ <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_COMPATIBLE_SUBROUTINES"/>
+ <command name="glGetProgramInterfaceiv"/>
+ <command name="glGetProgramResourceIndex"/>
+ <command name="glGetProgramResourceName"/>
+ <command name="glGetProgramResourceiv"/>
+ <command name="glGetProgramResourceLocation"/>
+ <command name="glGetProgramResourceLocationIndex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_provoking_vertex" supported="gl|glcore">
+ <require>
+ <enum name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum name="GL_PROVOKING_VERTEX"/>
+ <command name="glProvokingVertex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_query_buffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_QUERY_BUFFER"/>
+ <enum name="GL_QUERY_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_QUERY_BUFFER_BINDING"/>
+ <enum name="GL_QUERY_RESULT_NO_WAIT"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_robust_buffer_access_behavior" supported="gl|glcore"/>
+ <extension name="GL_ARB_robustness" supported="gl|glcore">
+ <require>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
+ <enum name="GL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum name="GL_GUILTY_CONTEXT_RESET_ARB"/>
+ <enum name="GL_INNOCENT_CONTEXT_RESET_ARB"/>
+ <enum name="GL_UNKNOWN_CONTEXT_RESET_ARB"/>
+ <enum name="GL_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum name="GL_NO_RESET_NOTIFICATION_ARB"/>
+ <command name="glGetGraphicsResetStatusARB"/>
+ <command name="glGetnTexImageARB"/>
+ <command name="glReadnPixelsARB"/>
+ <command name="glGetnCompressedTexImageARB"/>
+ <command name="glGetnUniformfvARB"/>
+ <command name="glGetnUniformivARB"/>
+ <command name="glGetnUniformuivARB"/>
+ <command name="glGetnUniformdvARB"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <command name="glGetnMapdvARB"/>
+ <command name="glGetnMapfvARB"/>
+ <command name="glGetnMapivARB"/>
+ <command name="glGetnPixelMapfvARB"/>
+ <command name="glGetnPixelMapuivARB"/>
+ <command name="glGetnPixelMapusvARB"/>
+ <command name="glGetnPolygonStippleARB"/>
+ <command name="glGetnColorTableARB"/>
+ <command name="glGetnConvolutionFilterARB"/>
+ <command name="glGetnSeparableFilterARB"/>
+ <command name="glGetnHistogramARB"/>
+ <command name="glGetnMinmaxARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_robustness_isolation" supported="gl|glcore"/>
+ <extension name="GL_ARB_sample_shading" supported="gl|glcore">
+ <require>
+ <enum name="GL_SAMPLE_SHADING_ARB"/>
+ <enum name="GL_MIN_SAMPLE_SHADING_VALUE_ARB"/>
+ <command name="glMinSampleShadingARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sampler_objects" supported="gl|glcore">
+ <require>
+ <enum name="GL_SAMPLER_BINDING"/>
+ <command name="glGenSamplers"/>
+ <command name="glDeleteSamplers"/>
+ <command name="glIsSampler"/>
+ <command name="glBindSampler"/>
+ <command name="glSamplerParameteri"/>
+ <command name="glSamplerParameteriv"/>
+ <command name="glSamplerParameterf"/>
+ <command name="glSamplerParameterfv"/>
+ <command name="glSamplerParameterIiv"/>
+ <command name="glSamplerParameterIuiv"/>
+ <command name="glGetSamplerParameteriv"/>
+ <command name="glGetSamplerParameterIiv"/>
+ <command name="glGetSamplerParameterfv"/>
+ <command name="glGetSamplerParameterIuiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_seamless_cube_map" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_seamless_cubemap_per_texture" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_separate_shader_objects" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_PROGRAM_SEPARABLE"/>
+ <enum name="GL_ACTIVE_PROGRAM"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING"/>
+ <command name="glUseProgramStages"/>
+ <command name="glActiveShaderProgram"/>
+ <command name="glCreateShaderProgramv"/>
+ <command name="glBindProgramPipeline"/>
+ <command name="glDeleteProgramPipelines"/>
+ <command name="glGenProgramPipelines"/>
+ <command name="glIsProgramPipeline"/>
+ <command name="glGetProgramPipelineiv"/>
+ <command name="glProgramUniform1i"/>
+ <command name="glProgramUniform1iv"/>
+ <command name="glProgramUniform1f"/>
+ <command name="glProgramUniform1fv"/>
+ <command name="glProgramUniform1d"/>
+ <command name="glProgramUniform1dv"/>
+ <command name="glProgramUniform1ui"/>
+ <command name="glProgramUniform1uiv"/>
+ <command name="glProgramUniform2i"/>
+ <command name="glProgramUniform2iv"/>
+ <command name="glProgramUniform2f"/>
+ <command name="glProgramUniform2fv"/>
+ <command name="glProgramUniform2d"/>
+ <command name="glProgramUniform2dv"/>
+ <command name="glProgramUniform2ui"/>
+ <command name="glProgramUniform2uiv"/>
+ <command name="glProgramUniform3i"/>
+ <command name="glProgramUniform3iv"/>
+ <command name="glProgramUniform3f"/>
+ <command name="glProgramUniform3fv"/>
+ <command name="glProgramUniform3d"/>
+ <command name="glProgramUniform3dv"/>
+ <command name="glProgramUniform3ui"/>
+ <command name="glProgramUniform3uiv"/>
+ <command name="glProgramUniform4i"/>
+ <command name="glProgramUniform4iv"/>
+ <command name="glProgramUniform4f"/>
+ <command name="glProgramUniform4fv"/>
+ <command name="glProgramUniform4d"/>
+ <command name="glProgramUniform4dv"/>
+ <command name="glProgramUniform4ui"/>
+ <command name="glProgramUniform4uiv"/>
+ <command name="glProgramUniformMatrix2fv"/>
+ <command name="glProgramUniformMatrix3fv"/>
+ <command name="glProgramUniformMatrix4fv"/>
+ <command name="glProgramUniformMatrix2dv"/>
+ <command name="glProgramUniformMatrix3dv"/>
+ <command name="glProgramUniformMatrix4dv"/>
+ <command name="glProgramUniformMatrix2x3fv"/>
+ <command name="glProgramUniformMatrix3x2fv"/>
+ <command name="glProgramUniformMatrix2x4fv"/>
+ <command name="glProgramUniformMatrix4x2fv"/>
+ <command name="glProgramUniformMatrix3x4fv"/>
+ <command name="glProgramUniformMatrix4x3fv"/>
+ <command name="glProgramUniformMatrix2x3dv"/>
+ <command name="glProgramUniformMatrix3x2dv"/>
+ <command name="glProgramUniformMatrix2x4dv"/>
+ <command name="glProgramUniformMatrix4x2dv"/>
+ <command name="glProgramUniformMatrix3x4dv"/>
+ <command name="glProgramUniformMatrix4x3dv"/>
+ <command name="glValidateProgramPipeline"/>
+ <command name="glGetProgramPipelineInfoLog"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_atomic_counters" supported="gl|glcore">
+ <require>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ <command name="glGetActiveAtomicCounterBufferiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_bit_encoding" supported="gl|glcore"/>
+ <extension name="GL_ARB_shader_draw_parameters" supported="gl|glcore"/>
+ <extension name="GL_ARB_shader_group_vote" supported="gl|glcore"/>
+ <extension name="GL_ARB_shader_image_load_store" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_MAX_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum name="GL_IMAGE_BINDING_NAME"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum name="GL_IMAGE_BINDING_LAYER"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum name="GL_IMAGE_1D"/>
+ <enum name="GL_IMAGE_2D"/>
+ <enum name="GL_IMAGE_3D"/>
+ <enum name="GL_IMAGE_2D_RECT"/>
+ <enum name="GL_IMAGE_CUBE"/>
+ <enum name="GL_IMAGE_BUFFER"/>
+ <enum name="GL_IMAGE_1D_ARRAY"/>
+ <enum name="GL_IMAGE_2D_ARRAY"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_IMAGE_1D"/>
+ <enum name="GL_INT_IMAGE_2D"/>
+ <enum name="GL_INT_IMAGE_3D"/>
+ <enum name="GL_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_INT_IMAGE_CUBE"/>
+ <enum name="GL_INT_IMAGE_BUFFER"/>
+ <enum name="GL_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_IMAGE_SAMPLES"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ <command name="glBindImageTexture"/>
+ <command name="glMemoryBarrier"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_image_size" supported="gl|glcore"/>
+ <extension name="GL_ARB_shader_objects" supported="gl">
+ <require>
+ <enum name="GL_PROGRAM_OBJECT_ARB"/>
+ <enum name="GL_SHADER_OBJECT_ARB"/>
+ <enum name="GL_OBJECT_TYPE_ARB"/>
+ <enum name="GL_OBJECT_SUBTYPE_ARB"/>
+ <enum name="GL_FLOAT_VEC2_ARB"/>
+ <enum name="GL_FLOAT_VEC3_ARB"/>
+ <enum name="GL_FLOAT_VEC4_ARB"/>
+ <enum name="GL_INT_VEC2_ARB"/>
+ <enum name="GL_INT_VEC3_ARB"/>
+ <enum name="GL_INT_VEC4_ARB"/>
+ <enum name="GL_BOOL_ARB"/>
+ <enum name="GL_BOOL_VEC2_ARB"/>
+ <enum name="GL_BOOL_VEC3_ARB"/>
+ <enum name="GL_BOOL_VEC4_ARB"/>
+ <enum name="GL_FLOAT_MAT2_ARB"/>
+ <enum name="GL_FLOAT_MAT3_ARB"/>
+ <enum name="GL_FLOAT_MAT4_ARB"/>
+ <enum name="GL_SAMPLER_1D_ARB"/>
+ <enum name="GL_SAMPLER_2D_ARB"/>
+ <enum name="GL_SAMPLER_3D_ARB"/>
+ <enum name="GL_SAMPLER_CUBE_ARB"/>
+ <enum name="GL_SAMPLER_1D_SHADOW_ARB"/>
+ <enum name="GL_SAMPLER_2D_SHADOW_ARB"/>
+ <enum name="GL_SAMPLER_2D_RECT_ARB"/>
+ <enum name="GL_SAMPLER_2D_RECT_SHADOW_ARB"/>
+ <enum name="GL_OBJECT_DELETE_STATUS_ARB"/>
+ <enum name="GL_OBJECT_COMPILE_STATUS_ARB"/>
+ <enum name="GL_OBJECT_LINK_STATUS_ARB"/>
+ <enum name="GL_OBJECT_VALIDATE_STATUS_ARB"/>
+ <enum name="GL_OBJECT_INFO_LOG_LENGTH_ARB"/>
+ <enum name="GL_OBJECT_ATTACHED_OBJECTS_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_UNIFORMS_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB"/>
+ <enum name="GL_OBJECT_SHADER_SOURCE_LENGTH_ARB"/>
+ <command name="glDeleteObjectARB"/>
+ <command name="glGetHandleARB"/>
+ <command name="glDetachObjectARB"/>
+ <command name="glCreateShaderObjectARB"/>
+ <command name="glShaderSourceARB"/>
+ <command name="glCompileShaderARB"/>
+ <command name="glCreateProgramObjectARB"/>
+ <command name="glAttachObjectARB"/>
+ <command name="glLinkProgramARB"/>
+ <command name="glUseProgramObjectARB"/>
+ <command name="glValidateProgramARB"/>
+ <command name="glUniform1fARB"/>
+ <command name="glUniform2fARB"/>
+ <command name="glUniform3fARB"/>
+ <command name="glUniform4fARB"/>
+ <command name="glUniform1iARB"/>
+ <command name="glUniform2iARB"/>
+ <command name="glUniform3iARB"/>
+ <command name="glUniform4iARB"/>
+ <command name="glUniform1fvARB"/>
+ <command name="glUniform2fvARB"/>
+ <command name="glUniform3fvARB"/>
+ <command name="glUniform4fvARB"/>
+ <command name="glUniform1ivARB"/>
+ <command name="glUniform2ivARB"/>
+ <command name="glUniform3ivARB"/>
+ <command name="glUniform4ivARB"/>
+ <command name="glUniformMatrix2fvARB"/>
+ <command name="glUniformMatrix3fvARB"/>
+ <command name="glUniformMatrix4fvARB"/>
+ <command name="glGetObjectParameterfvARB"/>
+ <command name="glGetObjectParameterivARB"/>
+ <command name="glGetInfoLogARB"/>
+ <command name="glGetAttachedObjectsARB"/>
+ <command name="glGetUniformLocationARB"/>
+ <command name="glGetActiveUniformARB"/>
+ <command name="glGetUniformfvARB"/>
+ <command name="glGetUniformivARB"/>
+ <command name="glGetShaderSourceARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_precision" supported="gl|glcore"/>
+ <extension name="GL_ARB_shader_stencil_export" supported="gl|glcore"/>
+ <extension name="GL_ARB_shader_storage_buffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <command name="glShaderStorageBlockBinding"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_subroutine" supported="gl|glcore">
+ <require>
+ <enum name="GL_ACTIVE_SUBROUTINES"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_MAX_SUBROUTINES"/>
+ <enum name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <command name="glGetSubroutineUniformLocation"/>
+ <command name="glGetSubroutineIndex"/>
+ <command name="glGetActiveSubroutineUniformiv"/>
+ <command name="glGetActiveSubroutineUniformName"/>
+ <command name="glGetActiveSubroutineName"/>
+ <command name="glUniformSubroutinesuiv"/>
+ <command name="glGetUniformSubroutineuiv"/>
+ <command name="glGetProgramStageiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_texture_image_samples" supported="gl|glcore"/>
+ <extension name="GL_ARB_shader_texture_lod" supported="gl"/>
+ <extension name="GL_ARB_shading_language_100" supported="gl">
+ <require>
+ <enum name="GL_SHADING_LANGUAGE_VERSION_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_420pack" supported="gl|glcore"/>
+ <extension name="GL_ARB_shading_language_include" supported="gl|glcore">
+ <require>
+ <enum name="GL_SHADER_INCLUDE_ARB"/>
+ <enum name="GL_NAMED_STRING_LENGTH_ARB"/>
+ <enum name="GL_NAMED_STRING_TYPE_ARB"/>
+ <command name="glNamedStringARB"/>
+ <command name="glDeleteNamedStringARB"/>
+ <command name="glCompileShaderIncludeARB"/>
+ <command name="glIsNamedStringARB"/>
+ <command name="glGetNamedStringARB"/>
+ <command name="glGetNamedStringivARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_packing" supported="gl|glcore"/>
+ <extension name="GL_ARB_shadow" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_MODE_ARB"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC_ARB"/>
+ <enum name="GL_COMPARE_R_TO_TEXTURE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shadow_ambient" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_FAIL_VALUE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sparse_buffer" supported="gl|glcore">
+ <require>
+ <enum name="GL_SPARSE_STORAGE_BIT_ARB"/>
+ <enum name="GL_SPARSE_BUFFER_PAGE_SIZE_ARB"/>
+ <command name="glBufferPageCommitmentARB"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glNamedBufferPageCommitmentEXT"/>
+ </require>
+ <require comment="Supported only if GL_ARb_direct_state_access or GL 4.5 is supported">
+ <command name="glNamedBufferPageCommitmentARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sparse_texture" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_SPARSE_ARB"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_INDEX_ARB"/>
+ <enum name="GL_MIN_SPARSE_LEVEL_ARB"/>
+ <enum name="GL_NUM_VIRTUAL_PAGE_SIZES_ARB"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_X_ARB"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Y_ARB"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Z_ARB"/>
+ <enum name="GL_MAX_SPARSE_TEXTURE_SIZE_ARB"/>
+ <enum name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB"/>
+ <enum name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB"/>
+ <enum name="GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB"/>
+ <command name="glTexPageCommitmentARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_stencil_texturing" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sync" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum name="GL_OBJECT_TYPE"/>
+ <enum name="GL_SYNC_CONDITION"/>
+ <enum name="GL_SYNC_STATUS"/>
+ <enum name="GL_SYNC_FLAGS"/>
+ <enum name="GL_SYNC_FENCE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum name="GL_UNSIGNALED"/>
+ <enum name="GL_SIGNALED"/>
+ <enum name="GL_ALREADY_SIGNALED"/>
+ <enum name="GL_TIMEOUT_EXPIRED"/>
+ <enum name="GL_CONDITION_SATISFIED"/>
+ <enum name="GL_WAIT_FAILED"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <command name="glFenceSync"/>
+ <command name="glIsSync"/>
+ <command name="glDeleteSync"/>
+ <command name="glClientWaitSync"/>
+ <command name="glWaitSync"/>
+ <command name="glGetInteger64v"/>
+ <command name="glGetSynciv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_tessellation_shader" supported="gl|glcore">
+ <require>
+ <enum name="GL_PATCHES"/>
+ <enum name="GL_PATCH_VERTICES"/>
+ <enum name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+ <enum name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+ <enum name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
+ <enum name="GL_TESS_GEN_MODE"/>
+ <enum name="GL_TESS_GEN_SPACING"/>
+ <enum name="GL_TESS_GEN_VERTEX_ORDER"/>
+ <enum name="GL_TESS_GEN_POINT_MODE"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_ISOLINES"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_FRACTIONAL_ODD"/>
+ <enum name="GL_FRACTIONAL_EVEN"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_MAX_PATCH_VERTICES"/>
+ <enum name="GL_MAX_TESS_GEN_LEVEL"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_PATCH_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_CONTROL_SHADER"/>
+ <command name="glPatchParameteri"/>
+ <command name="glPatchParameterfv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_barrier" supported="gl|glcore">
+ <require>
+ <command name="glTextureBarrier"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_border_clamp" supported="gl">
+ <require>
+ <enum name="GL_CLAMP_TO_BORDER_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_ARB"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER_ARB"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB"/>
+ <enum name="GL_TEXTURE_BUFFER_FORMAT_ARB"/>
+ <command name="glTexBufferARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_buffer_object_rgb32" supported="gl|glcore">
+ <require>
+ <enum name="GL_RGB32F"/>
+ <enum name="GL_RGB32UI"/>
+ <enum name="GL_RGB32I"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_buffer_range" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET"/>
+ <enum name="GL_TEXTURE_BUFFER_SIZE"/>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+ <command name="glTexBufferRange"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_compression" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_ALPHA_ARB"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ARB"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA_ARB"/>
+ <enum name="GL_COMPRESSED_INTENSITY_ARB"/>
+ <enum name="GL_COMPRESSED_RGB_ARB"/>
+ <enum name="GL_COMPRESSED_RGBA_ARB"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+ <enum name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB"/>
+ <enum name="GL_TEXTURE_COMPRESSED_ARB"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <command name="glCompressedTexImage3DARB"/>
+ <command name="glCompressedTexImage2DARB"/>
+ <command name="glCompressedTexImage1DARB"/>
+ <command name="glCompressedTexSubImage3DARB"/>
+ <command name="glCompressedTexSubImage2DARB"/>
+ <command name="glCompressedTexSubImage1DARB"/>
+ <command name="glGetCompressedTexImageARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_compression_bptc" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"/>
+ <enum name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"/>
+ <enum name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_compression_rgtc" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPRESSED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_RG_RGTC2"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_cube_map" supported="gl">
+ <require>
+ <enum name="GL_NORMAL_MAP_ARB"/>
+ <enum name="GL_REFLECTION_MAP_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARB"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_cube_map_array" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB"/>
+ <enum name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_add" supported="gl"/>
+ <extension name="GL_ARB_texture_env_combine" supported="gl">
+ <require>
+ <enum name="GL_COMBINE_ARB"/>
+ <enum name="GL_COMBINE_RGB_ARB"/>
+ <enum name="GL_COMBINE_ALPHA_ARB"/>
+ <enum name="GL_SOURCE0_RGB_ARB"/>
+ <enum name="GL_SOURCE1_RGB_ARB"/>
+ <enum name="GL_SOURCE2_RGB_ARB"/>
+ <enum name="GL_SOURCE0_ALPHA_ARB"/>
+ <enum name="GL_SOURCE1_ALPHA_ARB"/>
+ <enum name="GL_SOURCE2_ALPHA_ARB"/>
+ <enum name="GL_OPERAND0_RGB_ARB"/>
+ <enum name="GL_OPERAND1_RGB_ARB"/>
+ <enum name="GL_OPERAND2_RGB_ARB"/>
+ <enum name="GL_OPERAND0_ALPHA_ARB"/>
+ <enum name="GL_OPERAND1_ALPHA_ARB"/>
+ <enum name="GL_OPERAND2_ALPHA_ARB"/>
+ <enum name="GL_RGB_SCALE_ARB"/>
+ <enum name="GL_ADD_SIGNED_ARB"/>
+ <enum name="GL_INTERPOLATE_ARB"/>
+ <enum name="GL_SUBTRACT_ARB"/>
+ <enum name="GL_CONSTANT_ARB"/>
+ <enum name="GL_PRIMARY_COLOR_ARB"/>
+ <enum name="GL_PREVIOUS_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_crossbar" supported="gl"/>
+ <extension name="GL_ARB_texture_env_dot3" supported="gl">
+ <require>
+ <enum name="GL_DOT3_RGB_ARB"/>
+ <enum name="GL_DOT3_RGBA_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_float" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RED_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE_ARB"/>
+ <enum name="GL_UNSIGNED_NORMALIZED_ARB"/>
+ <enum name="GL_RGBA32F_ARB"/>
+ <enum name="GL_RGB32F_ARB"/>
+ <enum name="GL_ALPHA32F_ARB"/>
+ <enum name="GL_INTENSITY32F_ARB"/>
+ <enum name="GL_LUMINANCE32F_ARB"/>
+ <enum name="GL_LUMINANCE_ALPHA32F_ARB"/>
+ <enum name="GL_RGBA16F_ARB"/>
+ <enum name="GL_RGB16F_ARB"/>
+ <enum name="GL_ALPHA16F_ARB"/>
+ <enum name="GL_INTENSITY16F_ARB"/>
+ <enum name="GL_LUMINANCE16F_ARB"/>
+ <enum name="GL_LUMINANCE_ALPHA16F_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_gather" supported="gl|glcore">
+ <require>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_mirror_clamp_to_edge" supported="gl|glcore">
+ <require>
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_mirrored_repeat" supported="gl">
+ <require>
+ <enum name="GL_MIRRORED_REPEAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_multisample" supported="gl|glcore">
+ <require>
+ <enum name="GL_SAMPLE_POSITION"/>
+ <enum name="GL_SAMPLE_MASK"/>
+ <enum name="GL_SAMPLE_MASK_VALUE"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_SAMPLES"/>
+ <enum name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_INTEGER_SAMPLES"/>
+ <command name="glTexImage2DMultisample"/>
+ <command name="glTexImage3DMultisample"/>
+ <command name="glGetMultisamplefv"/>
+ <command name="glSampleMaski"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_non_power_of_two" supported="gl"/>
+ <extension name="GL_ARB_texture_query_levels" supported="gl|glcore"/>
+ <extension name="GL_ARB_texture_query_lod" supported="gl|glcore"/>
+ <extension name="GL_ARB_texture_rectangle" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RECTANGLE_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE_ARB"/>
+ <enum name="GL_PROXY_TEXTURE_RECTANGLE_ARB"/>
+ <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_rg" supported="gl|glcore">
+ <require>
+ <enum name="GL_RG"/>
+ <enum name="GL_RG_INTEGER"/>
+ <enum name="GL_R8"/>
+ <enum name="GL_R16"/>
+ <enum name="GL_RG8"/>
+ <enum name="GL_RG16"/>
+ <enum name="GL_R16F"/>
+ <enum name="GL_R32F"/>
+ <enum name="GL_RG16F"/>
+ <enum name="GL_RG32F"/>
+ <enum name="GL_R8I"/>
+ <enum name="GL_R8UI"/>
+ <enum name="GL_R16I"/>
+ <enum name="GL_R16UI"/>
+ <enum name="GL_R32I"/>
+ <enum name="GL_R32UI"/>
+ <enum name="GL_RG8I"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16I"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RG32I"/>
+ <enum name="GL_RG32UI"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_rgb10_a2ui" supported="gl|glcore">
+ <require>
+ <enum name="GL_RGB10_A2UI"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_stencil8" supported="gl|glcore">
+ <require>
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_storage" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ <command name="glTexStorage1D"/>
+ <command name="glTexStorage2D"/>
+ <command name="glTexStorage3D"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_storage_multisample" supported="gl|glcore">
+ <require>
+ <command name="glTexStorage2DMultisample"/>
+ <command name="glTexStorage3DMultisample"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_swizzle" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum name="GL_TEXTURE_SWIZZLE_RGBA"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_view" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LEVELS"/>
+ <enum name="GL_TEXTURE_VIEW_MIN_LAYER"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LAYERS"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <command name="glTextureView"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_timer_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_TIME_ELAPSED"/>
+ <enum name="GL_TIMESTAMP"/>
+ <command name="glQueryCounter"/>
+ <command name="glGetQueryObjecti64v"/>
+ <command name="glGetQueryObjectui64v"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback2" supported="gl|glcore">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <command name="glBindTransformFeedback"/>
+ <command name="glDeleteTransformFeedbacks"/>
+ <command name="glGenTransformFeedbacks"/>
+ <command name="glIsTransformFeedback"/>
+ <command name="glPauseTransformFeedback"/>
+ <command name="glResumeTransformFeedback"/>
+ <command name="glDrawTransformFeedback"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback3" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ <command name="glDrawTransformFeedbackStream"/>
+ <command name="glBeginQueryIndexed"/>
+ <command name="glEndQueryIndexed"/>
+ <command name="glGetQueryIndexediv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback_instanced" supported="gl|glcore">
+ <require>
+ <command name="glDrawTransformFeedbackInstanced"/>
+ <command name="glDrawTransformFeedbackStreamInstanced"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback_overflow_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transpose_matrix" supported="gl">
+ <require>
+ <enum name="GL_TRANSPOSE_MODELVIEW_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_PROJECTION_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_TEXTURE_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_COLOR_MATRIX_ARB"/>
+ <command name="glLoadTransposeMatrixfARB"/>
+ <command name="glLoadTransposeMatrixdARB"/>
+ <command name="glMultTransposeMatrixfARB"/>
+ <command name="glMultTransposeMatrixdARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_uniform_buffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNIFORM_BUFFER"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER_START"/>
+ <enum name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum name="GL_UNIFORM_TYPE"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum name="GL_UNIFORM_OFFSET"/>
+ <enum name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_INVALID_INDEX"/>
+ <command name="glGetUniformIndices"/>
+ <command name="glGetActiveUniformsiv"/>
+ <command name="glGetActiveUniformName"/>
+ <command name="glGetUniformBlockIndex"/>
+ <command name="glGetActiveUniformBlockiv"/>
+ <command name="glGetActiveUniformBlockName"/>
+ <command name="glUniformBlockBinding"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_array_bgra" supported="gl|glcore">
+ <require>
+ <enum name="GL_BGRA"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_array_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_BINDING"/>
+ <command name="glBindVertexArray"/>
+ <command name="glDeleteVertexArrays"/>
+ <command name="glGenVertexArrays"/>
+ <command name="glIsVertexArray"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_attrib_64bit" supported="gl|glcore">
+ <require>
+ <enum name="GL_RGB32I"/>
+ <enum name="GL_DOUBLE_VEC2"/>
+ <enum name="GL_DOUBLE_VEC3"/>
+ <enum name="GL_DOUBLE_VEC4"/>
+ <enum name="GL_DOUBLE_MAT2"/>
+ <enum name="GL_DOUBLE_MAT3"/>
+ <enum name="GL_DOUBLE_MAT4"/>
+ <enum name="GL_DOUBLE_MAT2x3"/>
+ <enum name="GL_DOUBLE_MAT2x4"/>
+ <enum name="GL_DOUBLE_MAT3x2"/>
+ <enum name="GL_DOUBLE_MAT3x4"/>
+ <enum name="GL_DOUBLE_MAT4x2"/>
+ <enum name="GL_DOUBLE_MAT4x3"/>
+ <command name="glVertexAttribL1d"/>
+ <command name="glVertexAttribL2d"/>
+ <command name="glVertexAttribL3d"/>
+ <command name="glVertexAttribL4d"/>
+ <command name="glVertexAttribL1dv"/>
+ <command name="glVertexAttribL2dv"/>
+ <command name="glVertexAttribL3dv"/>
+ <command name="glVertexAttribL4dv"/>
+ <command name="glVertexAttribLPointer"/>
+ <command name="glGetVertexAttribLdv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_attrib_binding" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ <command name="glBindVertexBuffer"/>
+ <command name="glVertexAttribFormat"/>
+ <command name="glVertexAttribIFormat"/>
+ <command name="glVertexAttribLFormat"/>
+ <command name="glVertexAttribBinding"/>
+ <command name="glVertexBindingDivisor"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_blend" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_UNITS_ARB"/>
+ <enum name="GL_ACTIVE_VERTEX_UNITS_ARB"/>
+ <enum name="GL_WEIGHT_SUM_UNITY_ARB"/>
+ <enum name="GL_VERTEX_BLEND_ARB"/>
+ <enum name="GL_CURRENT_WEIGHT_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_TYPE_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_SIZE_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_POINTER_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_ARB"/>
+ <enum name="GL_MODELVIEW0_ARB"/>
+ <enum name="GL_MODELVIEW1_ARB"/>
+ <enum name="GL_MODELVIEW2_ARB"/>
+ <enum name="GL_MODELVIEW3_ARB"/>
+ <enum name="GL_MODELVIEW4_ARB"/>
+ <enum name="GL_MODELVIEW5_ARB"/>
+ <enum name="GL_MODELVIEW6_ARB"/>
+ <enum name="GL_MODELVIEW7_ARB"/>
+ <enum name="GL_MODELVIEW8_ARB"/>
+ <enum name="GL_MODELVIEW9_ARB"/>
+ <enum name="GL_MODELVIEW10_ARB"/>
+ <enum name="GL_MODELVIEW11_ARB"/>
+ <enum name="GL_MODELVIEW12_ARB"/>
+ <enum name="GL_MODELVIEW13_ARB"/>
+ <enum name="GL_MODELVIEW14_ARB"/>
+ <enum name="GL_MODELVIEW15_ARB"/>
+ <enum name="GL_MODELVIEW16_ARB"/>
+ <enum name="GL_MODELVIEW17_ARB"/>
+ <enum name="GL_MODELVIEW18_ARB"/>
+ <enum name="GL_MODELVIEW19_ARB"/>
+ <enum name="GL_MODELVIEW20_ARB"/>
+ <enum name="GL_MODELVIEW21_ARB"/>
+ <enum name="GL_MODELVIEW22_ARB"/>
+ <enum name="GL_MODELVIEW23_ARB"/>
+ <enum name="GL_MODELVIEW24_ARB"/>
+ <enum name="GL_MODELVIEW25_ARB"/>
+ <enum name="GL_MODELVIEW26_ARB"/>
+ <enum name="GL_MODELVIEW27_ARB"/>
+ <enum name="GL_MODELVIEW28_ARB"/>
+ <enum name="GL_MODELVIEW29_ARB"/>
+ <enum name="GL_MODELVIEW30_ARB"/>
+ <enum name="GL_MODELVIEW31_ARB"/>
+ <command name="glWeightbvARB"/>
+ <command name="glWeightsvARB"/>
+ <command name="glWeightivARB"/>
+ <command name="glWeightfvARB"/>
+ <command name="glWeightdvARB"/>
+ <command name="glWeightubvARB"/>
+ <command name="glWeightusvARB"/>
+ <command name="glWeightuivARB"/>
+ <command name="glWeightPointerARB"/>
+ <command name="glVertexBlendARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_SIZE_ARB"/>
+ <enum name="GL_BUFFER_USAGE_ARB"/>
+ <enum name="GL_ARRAY_BUFFER_ARB"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_ARB"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_INDEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_READ_ONLY_ARB"/>
+ <enum name="GL_WRITE_ONLY_ARB"/>
+ <enum name="GL_READ_WRITE_ARB"/>
+ <enum name="GL_BUFFER_ACCESS_ARB"/>
+ <enum name="GL_BUFFER_MAPPED_ARB"/>
+ <enum name="GL_BUFFER_MAP_POINTER_ARB"/>
+ <enum name="GL_STREAM_DRAW_ARB"/>
+ <enum name="GL_STREAM_READ_ARB"/>
+ <enum name="GL_STREAM_COPY_ARB"/>
+ <enum name="GL_STATIC_DRAW_ARB"/>
+ <enum name="GL_STATIC_READ_ARB"/>
+ <enum name="GL_STATIC_COPY_ARB"/>
+ <enum name="GL_DYNAMIC_DRAW_ARB"/>
+ <enum name="GL_DYNAMIC_READ_ARB"/>
+ <enum name="GL_DYNAMIC_COPY_ARB"/>
+ <command name="glBindBufferARB"/>
+ <command name="glDeleteBuffersARB"/>
+ <command name="glGenBuffersARB"/>
+ <command name="glIsBufferARB"/>
+ <command name="glBufferDataARB"/>
+ <command name="glBufferSubDataARB"/>
+ <command name="glGetBufferSubDataARB"/>
+ <command name="glMapBufferARB"/>
+ <command name="glUnmapBufferARB"/>
+ <command name="glGetBufferParameterivARB"/>
+ <command name="glGetBufferPointervARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_program" supported="gl">
+ <require>
+ <enum name="GL_COLOR_SUM_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB_ARB"/>
+ <enum name="GL_PROGRAM_LENGTH_ARB"/>
+ <enum name="GL_PROGRAM_STRING_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRICES_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_POSITION_ARB"/>
+ <enum name="GL_PROGRAM_BINDING_ARB"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_STRING_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ARB"/>
+ <enum name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
+ <enum name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_MATRIX0_ARB"/>
+ <enum name="GL_MATRIX1_ARB"/>
+ <enum name="GL_MATRIX2_ARB"/>
+ <enum name="GL_MATRIX3_ARB"/>
+ <enum name="GL_MATRIX4_ARB"/>
+ <enum name="GL_MATRIX5_ARB"/>
+ <enum name="GL_MATRIX6_ARB"/>
+ <enum name="GL_MATRIX7_ARB"/>
+ <enum name="GL_MATRIX8_ARB"/>
+ <enum name="GL_MATRIX9_ARB"/>
+ <enum name="GL_MATRIX10_ARB"/>
+ <enum name="GL_MATRIX11_ARB"/>
+ <enum name="GL_MATRIX12_ARB"/>
+ <enum name="GL_MATRIX13_ARB"/>
+ <enum name="GL_MATRIX14_ARB"/>
+ <enum name="GL_MATRIX15_ARB"/>
+ <enum name="GL_MATRIX16_ARB"/>
+ <enum name="GL_MATRIX17_ARB"/>
+ <enum name="GL_MATRIX18_ARB"/>
+ <enum name="GL_MATRIX19_ARB"/>
+ <enum name="GL_MATRIX20_ARB"/>
+ <enum name="GL_MATRIX21_ARB"/>
+ <enum name="GL_MATRIX22_ARB"/>
+ <enum name="GL_MATRIX23_ARB"/>
+ <enum name="GL_MATRIX24_ARB"/>
+ <enum name="GL_MATRIX25_ARB"/>
+ <enum name="GL_MATRIX26_ARB"/>
+ <enum name="GL_MATRIX27_ARB"/>
+ <enum name="GL_MATRIX28_ARB"/>
+ <enum name="GL_MATRIX29_ARB"/>
+ <enum name="GL_MATRIX30_ARB"/>
+ <enum name="GL_MATRIX31_ARB"/>
+ <command name="glVertexAttrib1dARB"/>
+ <command name="glVertexAttrib1dvARB"/>
+ <command name="glVertexAttrib1fARB"/>
+ <command name="glVertexAttrib1fvARB"/>
+ <command name="glVertexAttrib1sARB"/>
+ <command name="glVertexAttrib1svARB"/>
+ <command name="glVertexAttrib2dARB"/>
+ <command name="glVertexAttrib2dvARB"/>
+ <command name="glVertexAttrib2fARB"/>
+ <command name="glVertexAttrib2fvARB"/>
+ <command name="glVertexAttrib2sARB"/>
+ <command name="glVertexAttrib2svARB"/>
+ <command name="glVertexAttrib3dARB"/>
+ <command name="glVertexAttrib3dvARB"/>
+ <command name="glVertexAttrib3fARB"/>
+ <command name="glVertexAttrib3fvARB"/>
+ <command name="glVertexAttrib3sARB"/>
+ <command name="glVertexAttrib3svARB"/>
+ <command name="glVertexAttrib4NbvARB"/>
+ <command name="glVertexAttrib4NivARB"/>
+ <command name="glVertexAttrib4NsvARB"/>
+ <command name="glVertexAttrib4NubARB"/>
+ <command name="glVertexAttrib4NubvARB"/>
+ <command name="glVertexAttrib4NuivARB"/>
+ <command name="glVertexAttrib4NusvARB"/>
+ <command name="glVertexAttrib4bvARB"/>
+ <command name="glVertexAttrib4dARB"/>
+ <command name="glVertexAttrib4dvARB"/>
+ <command name="glVertexAttrib4fARB"/>
+ <command name="glVertexAttrib4fvARB"/>
+ <command name="glVertexAttrib4ivARB"/>
+ <command name="glVertexAttrib4sARB"/>
+ <command name="glVertexAttrib4svARB"/>
+ <command name="glVertexAttrib4ubvARB"/>
+ <command name="glVertexAttrib4uivARB"/>
+ <command name="glVertexAttrib4usvARB"/>
+ <command name="glVertexAttribPointerARB"/>
+ <command name="glEnableVertexAttribArrayARB"/>
+ <command name="glDisableVertexAttribArrayARB"/>
+ <command name="glProgramStringARB"/>
+ <command name="glBindProgramARB"/>
+ <command name="glDeleteProgramsARB"/>
+ <command name="glGenProgramsARB"/>
+ <command name="glProgramEnvParameter4dARB"/>
+ <command name="glProgramEnvParameter4dvARB"/>
+ <command name="glProgramEnvParameter4fARB"/>
+ <command name="glProgramEnvParameter4fvARB"/>
+ <command name="glProgramLocalParameter4dARB"/>
+ <command name="glProgramLocalParameter4dvARB"/>
+ <command name="glProgramLocalParameter4fARB"/>
+ <command name="glProgramLocalParameter4fvARB"/>
+ <command name="glGetProgramEnvParameterdvARB"/>
+ <command name="glGetProgramEnvParameterfvARB"/>
+ <command name="glGetProgramLocalParameterdvARB"/>
+ <command name="glGetProgramLocalParameterfvARB"/>
+ <command name="glGetProgramivARB"/>
+ <command name="glGetProgramStringARB"/>
+ <command name="glGetVertexAttribdvARB"/>
+ <command name="glGetVertexAttribfvARB"/>
+ <command name="glGetVertexAttribivARB"/>
+ <command name="glGetVertexAttribPointervARB"/>
+ <command name="glIsProgramARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_shader" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_SHADER_ARB"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_VARYING_FLOATS_ARB"/>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_ATTRIBUTES_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_MAX_TEXTURE_COORDS_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_FLOAT_VEC2_ARB"/>
+ <enum name="GL_FLOAT_VEC3_ARB"/>
+ <enum name="GL_FLOAT_VEC4_ARB"/>
+ <enum name="GL_FLOAT_MAT2_ARB"/>
+ <enum name="GL_FLOAT_MAT3_ARB"/>
+ <enum name="GL_FLOAT_MAT4_ARB"/>
+ <command name="glVertexAttrib1fARB"/>
+ <command name="glVertexAttrib1sARB"/>
+ <command name="glVertexAttrib1dARB"/>
+ <command name="glVertexAttrib2fARB"/>
+ <command name="glVertexAttrib2sARB"/>
+ <command name="glVertexAttrib2dARB"/>
+ <command name="glVertexAttrib3fARB"/>
+ <command name="glVertexAttrib3sARB"/>
+ <command name="glVertexAttrib3dARB"/>
+ <command name="glVertexAttrib4fARB"/>
+ <command name="glVertexAttrib4sARB"/>
+ <command name="glVertexAttrib4dARB"/>
+ <command name="glVertexAttrib4NubARB"/>
+ <command name="glVertexAttrib1fvARB"/>
+ <command name="glVertexAttrib1svARB"/>
+ <command name="glVertexAttrib1dvARB"/>
+ <command name="glVertexAttrib2fvARB"/>
+ <command name="glVertexAttrib2svARB"/>
+ <command name="glVertexAttrib2dvARB"/>
+ <command name="glVertexAttrib3fvARB"/>
+ <command name="glVertexAttrib3svARB"/>
+ <command name="glVertexAttrib3dvARB"/>
+ <command name="glVertexAttrib4fvARB"/>
+ <command name="glVertexAttrib4svARB"/>
+ <command name="glVertexAttrib4dvARB"/>
+ <command name="glVertexAttrib4ivARB"/>
+ <command name="glVertexAttrib4bvARB"/>
+ <command name="glVertexAttrib4ubvARB"/>
+ <command name="glVertexAttrib4usvARB"/>
+ <command name="glVertexAttrib4uivARB"/>
+ <command name="glVertexAttrib4NbvARB"/>
+ <command name="glVertexAttrib4NsvARB"/>
+ <command name="glVertexAttrib4NivARB"/>
+ <command name="glVertexAttrib4NubvARB"/>
+ <command name="glVertexAttrib4NusvARB"/>
+ <command name="glVertexAttrib4NuivARB"/>
+ <command name="glVertexAttribPointerARB"/>
+ <command name="glEnableVertexAttribArrayARB"/>
+ <command name="glDisableVertexAttribArrayARB"/>
+ <command name="glBindAttribLocationARB"/>
+ <command name="glGetActiveAttribARB"/>
+ <command name="glGetAttribLocationARB"/>
+ <command name="glGetVertexAttribdvARB"/>
+ <command name="glGetVertexAttribfvARB"/>
+ <command name="glGetVertexAttribivARB"/>
+ <command name="glGetVertexAttribPointervARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_type_10f_11f_11f_rev" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_type_2_10_10_10_rev" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum name="GL_INT_2_10_10_10_REV"/>
+ <command name="glVertexAttribP1ui"/>
+ <command name="glVertexAttribP1uiv"/>
+ <command name="glVertexAttribP2ui"/>
+ <command name="glVertexAttribP2uiv"/>
+ <command name="glVertexAttribP3ui"/>
+ <command name="glVertexAttribP3uiv"/>
+ <command name="glVertexAttribP4ui"/>
+ <command name="glVertexAttribP4uiv"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <command name="glVertexP2ui"/>
+ <command name="glVertexP2uiv"/>
+ <command name="glVertexP3ui"/>
+ <command name="glVertexP3uiv"/>
+ <command name="glVertexP4ui"/>
+ <command name="glVertexP4uiv"/>
+ <command name="glTexCoordP1ui"/>
+ <command name="glTexCoordP1uiv"/>
+ <command name="glTexCoordP2ui"/>
+ <command name="glTexCoordP2uiv"/>
+ <command name="glTexCoordP3ui"/>
+ <command name="glTexCoordP3uiv"/>
+ <command name="glTexCoordP4ui"/>
+ <command name="glTexCoordP4uiv"/>
+ <command name="glMultiTexCoordP1ui"/>
+ <command name="glMultiTexCoordP1uiv"/>
+ <command name="glMultiTexCoordP2ui"/>
+ <command name="glMultiTexCoordP2uiv"/>
+ <command name="glMultiTexCoordP3ui"/>
+ <command name="glMultiTexCoordP3uiv"/>
+ <command name="glMultiTexCoordP4ui"/>
+ <command name="glMultiTexCoordP4uiv"/>
+ <command name="glNormalP3ui"/>
+ <command name="glNormalP3uiv"/>
+ <command name="glColorP3ui"/>
+ <command name="glColorP3uiv"/>
+ <command name="glColorP4ui"/>
+ <command name="glColorP4uiv"/>
+ <command name="glSecondaryColorP3ui"/>
+ <command name="glSecondaryColorP3uiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_viewport_array" supported="gl|glcore">
+ <require>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_MAX_VIEWPORTS"/>
+ <enum name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+ <enum name="GL_VIEWPORT_BOUNDS_RANGE"/>
+ <enum name="GL_LAYER_PROVOKING_VERTEX"/>
+ <enum name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+ <enum name="GL_UNDEFINED_VERTEX"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum name="GL_PROVOKING_VERTEX"/>
+ <command name="glViewportArrayv"/>
+ <command name="glViewportIndexedf"/>
+ <command name="glViewportIndexedfv"/>
+ <command name="glScissorArrayv"/>
+ <command name="glScissorIndexed"/>
+ <command name="glScissorIndexedv"/>
+ <command name="glDepthRangeArrayv"/>
+ <command name="glDepthRangeIndexed"/>
+ <command name="glGetFloati_v"/>
+ <command name="glGetDoublei_v"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_window_pos" supported="gl">
+ <require>
+ <command name="glWindowPos2dARB"/>
+ <command name="glWindowPos2dvARB"/>
+ <command name="glWindowPos2fARB"/>
+ <command name="glWindowPos2fvARB"/>
+ <command name="glWindowPos2iARB"/>
+ <command name="glWindowPos2ivARB"/>
+ <command name="glWindowPos2sARB"/>
+ <command name="glWindowPos2svARB"/>
+ <command name="glWindowPos3dARB"/>
+ <command name="glWindowPos3dvARB"/>
+ <command name="glWindowPos3fARB"/>
+ <command name="glWindowPos3fvARB"/>
+ <command name="glWindowPos3iARB"/>
+ <command name="glWindowPos3ivARB"/>
+ <command name="glWindowPos3sARB"/>
+ <command name="glWindowPos3svARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_mali_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_MALI_PROGRAM_BINARY_ARM"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_mali_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_MALI_SHADER_BINARY_ARM"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_rgba8" supported="gles1|gles2"/>
+ <extension name="GL_ARM_shader_framebuffer_fetch" supported="gles2">
+ <require>
+ <enum name="GL_FETCH_PER_SAMPLE_ARM"/>
+ <enum name="GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_shader_framebuffer_fetch_depth_stencil" supported="gles2"/>
+ <extension name="GL_ATI_draw_buffers" supported="gl">
+ <require>
+ <enum name="GL_MAX_DRAW_BUFFERS_ATI"/>
+ <enum name="GL_DRAW_BUFFER0_ATI"/>
+ <enum name="GL_DRAW_BUFFER1_ATI"/>
+ <enum name="GL_DRAW_BUFFER2_ATI"/>
+ <enum name="GL_DRAW_BUFFER3_ATI"/>
+ <enum name="GL_DRAW_BUFFER4_ATI"/>
+ <enum name="GL_DRAW_BUFFER5_ATI"/>
+ <enum name="GL_DRAW_BUFFER6_ATI"/>
+ <enum name="GL_DRAW_BUFFER7_ATI"/>
+ <enum name="GL_DRAW_BUFFER8_ATI"/>
+ <enum name="GL_DRAW_BUFFER9_ATI"/>
+ <enum name="GL_DRAW_BUFFER10_ATI"/>
+ <enum name="GL_DRAW_BUFFER11_ATI"/>
+ <enum name="GL_DRAW_BUFFER12_ATI"/>
+ <enum name="GL_DRAW_BUFFER13_ATI"/>
+ <enum name="GL_DRAW_BUFFER14_ATI"/>
+ <enum name="GL_DRAW_BUFFER15_ATI"/>
+ <command name="glDrawBuffersATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_element_array" supported="gl">
+ <require>
+ <enum name="GL_ELEMENT_ARRAY_ATI"/>
+ <enum name="GL_ELEMENT_ARRAY_TYPE_ATI"/>
+ <enum name="GL_ELEMENT_ARRAY_POINTER_ATI"/>
+ <command name="glElementPointerATI"/>
+ <command name="glDrawElementArrayATI"/>
+ <command name="glDrawRangeElementArrayATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_envmap_bumpmap" supported="gl">
+ <require>
+ <enum name="GL_BUMP_ROT_MATRIX_ATI"/>
+ <enum name="GL_BUMP_ROT_MATRIX_SIZE_ATI"/>
+ <enum name="GL_BUMP_NUM_TEX_UNITS_ATI"/>
+ <enum name="GL_BUMP_TEX_UNITS_ATI"/>
+ <enum name="GL_DUDV_ATI"/>
+ <enum name="GL_DU8DV8_ATI"/>
+ <enum name="GL_BUMP_ENVMAP_ATI"/>
+ <enum name="GL_BUMP_TARGET_ATI"/>
+ <command name="glTexBumpParameterivATI"/>
+ <command name="glTexBumpParameterfvATI"/>
+ <command name="glGetTexBumpParameterivATI"/>
+ <command name="glGetTexBumpParameterfvATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_fragment_shader" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_ATI"/>
+ <enum name="GL_REG_0_ATI"/>
+ <enum name="GL_REG_1_ATI"/>
+ <enum name="GL_REG_2_ATI"/>
+ <enum name="GL_REG_3_ATI"/>
+ <enum name="GL_REG_4_ATI"/>
+ <enum name="GL_REG_5_ATI"/>
+ <enum name="GL_REG_6_ATI"/>
+ <enum name="GL_REG_7_ATI"/>
+ <enum name="GL_REG_8_ATI"/>
+ <enum name="GL_REG_9_ATI"/>
+ <enum name="GL_REG_10_ATI"/>
+ <enum name="GL_REG_11_ATI"/>
+ <enum name="GL_REG_12_ATI"/>
+ <enum name="GL_REG_13_ATI"/>
+ <enum name="GL_REG_14_ATI"/>
+ <enum name="GL_REG_15_ATI"/>
+ <enum name="GL_REG_16_ATI"/>
+ <enum name="GL_REG_17_ATI"/>
+ <enum name="GL_REG_18_ATI"/>
+ <enum name="GL_REG_19_ATI"/>
+ <enum name="GL_REG_20_ATI"/>
+ <enum name="GL_REG_21_ATI"/>
+ <enum name="GL_REG_22_ATI"/>
+ <enum name="GL_REG_23_ATI"/>
+ <enum name="GL_REG_24_ATI"/>
+ <enum name="GL_REG_25_ATI"/>
+ <enum name="GL_REG_26_ATI"/>
+ <enum name="GL_REG_27_ATI"/>
+ <enum name="GL_REG_28_ATI"/>
+ <enum name="GL_REG_29_ATI"/>
+ <enum name="GL_REG_30_ATI"/>
+ <enum name="GL_REG_31_ATI"/>
+ <enum name="GL_CON_0_ATI"/>
+ <enum name="GL_CON_1_ATI"/>
+ <enum name="GL_CON_2_ATI"/>
+ <enum name="GL_CON_3_ATI"/>
+ <enum name="GL_CON_4_ATI"/>
+ <enum name="GL_CON_5_ATI"/>
+ <enum name="GL_CON_6_ATI"/>
+ <enum name="GL_CON_7_ATI"/>
+ <enum name="GL_CON_8_ATI"/>
+ <enum name="GL_CON_9_ATI"/>
+ <enum name="GL_CON_10_ATI"/>
+ <enum name="GL_CON_11_ATI"/>
+ <enum name="GL_CON_12_ATI"/>
+ <enum name="GL_CON_13_ATI"/>
+ <enum name="GL_CON_14_ATI"/>
+ <enum name="GL_CON_15_ATI"/>
+ <enum name="GL_CON_16_ATI"/>
+ <enum name="GL_CON_17_ATI"/>
+ <enum name="GL_CON_18_ATI"/>
+ <enum name="GL_CON_19_ATI"/>
+ <enum name="GL_CON_20_ATI"/>
+ <enum name="GL_CON_21_ATI"/>
+ <enum name="GL_CON_22_ATI"/>
+ <enum name="GL_CON_23_ATI"/>
+ <enum name="GL_CON_24_ATI"/>
+ <enum name="GL_CON_25_ATI"/>
+ <enum name="GL_CON_26_ATI"/>
+ <enum name="GL_CON_27_ATI"/>
+ <enum name="GL_CON_28_ATI"/>
+ <enum name="GL_CON_29_ATI"/>
+ <enum name="GL_CON_30_ATI"/>
+ <enum name="GL_CON_31_ATI"/>
+ <enum name="GL_MOV_ATI"/>
+ <enum name="GL_ADD_ATI"/>
+ <enum name="GL_MUL_ATI"/>
+ <enum name="GL_SUB_ATI"/>
+ <enum name="GL_DOT3_ATI"/>
+ <enum name="GL_DOT4_ATI"/>
+ <enum name="GL_MAD_ATI"/>
+ <enum name="GL_LERP_ATI"/>
+ <enum name="GL_CND_ATI"/>
+ <enum name="GL_CND0_ATI"/>
+ <enum name="GL_DOT2_ADD_ATI"/>
+ <enum name="GL_SECONDARY_INTERPOLATOR_ATI"/>
+ <enum name="GL_NUM_FRAGMENT_REGISTERS_ATI"/>
+ <enum name="GL_NUM_FRAGMENT_CONSTANTS_ATI"/>
+ <enum name="GL_NUM_PASSES_ATI"/>
+ <enum name="GL_NUM_INSTRUCTIONS_PER_PASS_ATI"/>
+ <enum name="GL_NUM_INSTRUCTIONS_TOTAL_ATI"/>
+ <enum name="GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI"/>
+ <enum name="GL_NUM_LOOPBACK_COMPONENTS_ATI"/>
+ <enum name="GL_COLOR_ALPHA_PAIRING_ATI"/>
+ <enum name="GL_SWIZZLE_STR_ATI"/>
+ <enum name="GL_SWIZZLE_STQ_ATI"/>
+ <enum name="GL_SWIZZLE_STR_DR_ATI"/>
+ <enum name="GL_SWIZZLE_STQ_DQ_ATI"/>
+ <enum name="GL_SWIZZLE_STRQ_ATI"/>
+ <enum name="GL_SWIZZLE_STRQ_DQ_ATI"/>
+ <enum name="GL_RED_BIT_ATI"/>
+ <enum name="GL_GREEN_BIT_ATI"/>
+ <enum name="GL_BLUE_BIT_ATI"/>
+ <enum name="GL_2X_BIT_ATI"/>
+ <enum name="GL_4X_BIT_ATI"/>
+ <enum name="GL_8X_BIT_ATI"/>
+ <enum name="GL_HALF_BIT_ATI"/>
+ <enum name="GL_QUARTER_BIT_ATI"/>
+ <enum name="GL_EIGHTH_BIT_ATI"/>
+ <enum name="GL_SATURATE_BIT_ATI"/>
+ <enum name="GL_COMP_BIT_ATI"/>
+ <enum name="GL_NEGATE_BIT_ATI"/>
+ <enum name="GL_BIAS_BIT_ATI"/>
+ <command name="glGenFragmentShadersATI"/>
+ <command name="glBindFragmentShaderATI"/>
+ <command name="glDeleteFragmentShaderATI"/>
+ <command name="glBeginFragmentShaderATI"/>
+ <command name="glEndFragmentShaderATI"/>
+ <command name="glPassTexCoordATI"/>
+ <command name="glSampleMapATI"/>
+ <command name="glColorFragmentOp1ATI"/>
+ <command name="glColorFragmentOp2ATI"/>
+ <command name="glColorFragmentOp3ATI"/>
+ <command name="glAlphaFragmentOp1ATI"/>
+ <command name="glAlphaFragmentOp2ATI"/>
+ <command name="glAlphaFragmentOp3ATI"/>
+ <command name="glSetFragmentShaderConstantATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_map_object_buffer" supported="gl">
+ <require>
+ <command name="glMapObjectBufferATI"/>
+ <command name="glUnmapObjectBufferATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_meminfo" supported="gl">
+ <require>
+ <enum name="GL_VBO_FREE_MEMORY_ATI"/>
+ <enum name="GL_TEXTURE_FREE_MEMORY_ATI"/>
+ <enum name="GL_RENDERBUFFER_FREE_MEMORY_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_pixel_format_float" supported="gl" comment="WGL extension defining some associated GL enums. ATI does not export this extension.">
+ <require>
+ <enum name="GL_RGBA_FLOAT_MODE_ATI"/>
+ <enum name="GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_pn_triangles" supported="gl">
+ <require>
+ <enum name="GL_PN_TRIANGLES_ATI"/>
+ <enum name="GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum name="GL_PN_TRIANGLES_POINT_MODE_ATI"/>
+ <enum name="GL_PN_TRIANGLES_NORMAL_MODE_ATI"/>
+ <enum name="GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum name="GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI"/>
+ <enum name="GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI"/>
+ <enum name="GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI"/>
+ <enum name="GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI"/>
+ <command name="glPNTrianglesiATI"/>
+ <command name="glPNTrianglesfATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_separate_stencil" supported="gl">
+ <require>
+ <enum name="GL_STENCIL_BACK_FUNC_ATI"/>
+ <enum name="GL_STENCIL_BACK_FAIL_ATI"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI"/>
+ <command name="glStencilOpSeparateATI"/>
+ <command name="glStencilFuncSeparateATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_text_fragment_shader" supported="gl">
+ <require>
+ <enum name="GL_TEXT_FRAGMENT_SHADER_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_texture_env_combine3" supported="gl">
+ <require>
+ <enum name="GL_MODULATE_ADD_ATI"/>
+ <enum name="GL_MODULATE_SIGNED_ADD_ATI"/>
+ <enum name="GL_MODULATE_SUBTRACT_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_texture_float" supported="gl">
+ <require>
+ <enum name="GL_RGBA_FLOAT32_ATI"/>
+ <enum name="GL_RGB_FLOAT32_ATI"/>
+ <enum name="GL_ALPHA_FLOAT32_ATI"/>
+ <enum name="GL_INTENSITY_FLOAT32_ATI"/>
+ <enum name="GL_LUMINANCE_FLOAT32_ATI"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT32_ATI"/>
+ <enum name="GL_RGBA_FLOAT16_ATI"/>
+ <enum name="GL_RGB_FLOAT16_ATI"/>
+ <enum name="GL_ALPHA_FLOAT16_ATI"/>
+ <enum name="GL_INTENSITY_FLOAT16_ATI"/>
+ <enum name="GL_LUMINANCE_FLOAT16_ATI"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT16_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_texture_mirror_once" supported="gl">
+ <require>
+ <enum name="GL_MIRROR_CLAMP_ATI"/>
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_vertex_array_object" supported="gl">
+ <require>
+ <enum name="GL_STATIC_ATI"/>
+ <enum name="GL_DYNAMIC_ATI"/>
+ <enum name="GL_PRESERVE_ATI"/>
+ <enum name="GL_DISCARD_ATI"/>
+ <enum name="GL_OBJECT_BUFFER_SIZE_ATI"/>
+ <enum name="GL_OBJECT_BUFFER_USAGE_ATI"/>
+ <enum name="GL_ARRAY_OBJECT_BUFFER_ATI"/>
+ <enum name="GL_ARRAY_OBJECT_OFFSET_ATI"/>
+ <command name="glNewObjectBufferATI"/>
+ <command name="glIsObjectBufferATI"/>
+ <command name="glUpdateObjectBufferATI"/>
+ <command name="glGetObjectBufferfvATI"/>
+ <command name="glGetObjectBufferivATI"/>
+ <command name="glFreeObjectBufferATI"/>
+ <command name="glArrayObjectATI"/>
+ <command name="glGetArrayObjectfvATI"/>
+ <command name="glGetArrayObjectivATI"/>
+ <command name="glVariantArrayObjectATI"/>
+ <command name="glGetVariantArrayObjectfvATI"/>
+ <command name="glGetVariantArrayObjectivATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_vertex_attrib_array_object" supported="gl">
+ <require>
+ <command name="glVertexAttribArrayObjectATI"/>
+ <command name="glGetVertexAttribArrayObjectfvATI"/>
+ <command name="glGetVertexAttribArrayObjectivATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_vertex_streams" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_STREAMS_ATI"/>
+ <enum name="GL_VERTEX_STREAM0_ATI"/>
+ <enum name="GL_VERTEX_STREAM1_ATI"/>
+ <enum name="GL_VERTEX_STREAM2_ATI"/>
+ <enum name="GL_VERTEX_STREAM3_ATI"/>
+ <enum name="GL_VERTEX_STREAM4_ATI"/>
+ <enum name="GL_VERTEX_STREAM5_ATI"/>
+ <enum name="GL_VERTEX_STREAM6_ATI"/>
+ <enum name="GL_VERTEX_STREAM7_ATI"/>
+ <enum name="GL_VERTEX_SOURCE_ATI"/>
+ <command name="glVertexStream1sATI"/>
+ <command name="glVertexStream1svATI"/>
+ <command name="glVertexStream1iATI"/>
+ <command name="glVertexStream1ivATI"/>
+ <command name="glVertexStream1fATI"/>
+ <command name="glVertexStream1fvATI"/>
+ <command name="glVertexStream1dATI"/>
+ <command name="glVertexStream1dvATI"/>
+ <command name="glVertexStream2sATI"/>
+ <command name="glVertexStream2svATI"/>
+ <command name="glVertexStream2iATI"/>
+ <command name="glVertexStream2ivATI"/>
+ <command name="glVertexStream2fATI"/>
+ <command name="glVertexStream2fvATI"/>
+ <command name="glVertexStream2dATI"/>
+ <command name="glVertexStream2dvATI"/>
+ <command name="glVertexStream3sATI"/>
+ <command name="glVertexStream3svATI"/>
+ <command name="glVertexStream3iATI"/>
+ <command name="glVertexStream3ivATI"/>
+ <command name="glVertexStream3fATI"/>
+ <command name="glVertexStream3fvATI"/>
+ <command name="glVertexStream3dATI"/>
+ <command name="glVertexStream3dvATI"/>
+ <command name="glVertexStream4sATI"/>
+ <command name="glVertexStream4svATI"/>
+ <command name="glVertexStream4iATI"/>
+ <command name="glVertexStream4ivATI"/>
+ <command name="glVertexStream4fATI"/>
+ <command name="glVertexStream4fvATI"/>
+ <command name="glVertexStream4dATI"/>
+ <command name="glVertexStream4dvATI"/>
+ <command name="glNormalStream3bATI"/>
+ <command name="glNormalStream3bvATI"/>
+ <command name="glNormalStream3sATI"/>
+ <command name="glNormalStream3svATI"/>
+ <command name="glNormalStream3iATI"/>
+ <command name="glNormalStream3ivATI"/>
+ <command name="glNormalStream3fATI"/>
+ <command name="glNormalStream3fvATI"/>
+ <command name="glNormalStream3dATI"/>
+ <command name="glNormalStream3dvATI"/>
+ <command name="glClientActiveVertexStreamATI"/>
+ <command name="glVertexBlendEnviATI"/>
+ <command name="glVertexBlendEnvfATI"/>
+ </require>
+ </extension>
+ <extension name="GL_DMP_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_SHADER_BINARY_DMP"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_422_pixels" supported="gl">
+ <require>
+ <enum name="GL_422_EXT"/>
+ <enum name="GL_422_REV_EXT"/>
+ <enum name="GL_422_AVERAGE_EXT"/>
+ <enum name="GL_422_REV_AVERAGE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_abgr" supported="gl">
+ <require>
+ <enum name="GL_ABGR_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_bgra" supported="gl">
+ <require>
+ <enum name="GL_BGR_EXT"/>
+ <enum name="GL_BGRA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_bindable_uniform" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_BINDABLE_UNIFORM_SIZE_EXT"/>
+ <enum name="GL_UNIFORM_BUFFER_EXT"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING_EXT"/>
+ <command name="glUniformBufferEXT"/>
+ <command name="glGetUniformBufferSizeEXT"/>
+ <command name="glGetUniformOffsetEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_color" supported="gl">
+ <require>
+ <enum name="GL_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_BLEND_COLOR_EXT"/>
+ <command name="glBlendColorEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_equation_separate" supported="gl">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB_EXT"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA_EXT"/>
+ <command name="glBlendEquationSeparateEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_func_separate" supported="gl">
+ <require>
+ <enum name="GL_BLEND_DST_RGB_EXT"/>
+ <enum name="GL_BLEND_SRC_RGB_EXT"/>
+ <enum name="GL_BLEND_DST_ALPHA_EXT"/>
+ <enum name="GL_BLEND_SRC_ALPHA_EXT"/>
+ <command name="glBlendFuncSeparateEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_logic_op" supported="gl"/>
+ <extension name="GL_EXT_blend_minmax" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_MIN_EXT"/>
+ <enum name="GL_MAX_EXT"/>
+ </require>
+ <require api="gl">
+ <enum name="GL_FUNC_ADD_EXT"/>
+ <enum name="GL_BLEND_EQUATION_EXT"/>
+ <command name="glBlendEquationEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_subtract" supported="gl">
+ <require>
+ <enum name="GL_FUNC_SUBTRACT_EXT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_clip_volume_hint" supported="gl">
+ <require>
+ <enum name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_cmyka" supported="gl">
+ <require>
+ <enum name="GL_CMYK_EXT"/>
+ <enum name="GL_CMYKA_EXT"/>
+ <enum name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum name="GL_UNPACK_CMYK_HINT_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_color_buffer_half_float" supported="gles2">
+ <require>
+ <enum name="GL_RGBA16F_EXT"/>
+ <enum name="GL_RGB16F_EXT"/>
+ <enum name="GL_RG16F_EXT"/>
+ <enum name="GL_R16F_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"/>
+ <enum name="GL_UNSIGNED_NORMALIZED_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_color_subtable" supported="gl">
+ <require>
+ <command name="glColorSubTableEXT"/>
+ <command name="glCopyColorSubTableEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_compiled_vertex_array" supported="gl">
+ <require>
+ <enum name="GL_ARRAY_ELEMENT_LOCK_FIRST_EXT"/>
+ <enum name="GL_ARRAY_ELEMENT_LOCK_COUNT_EXT"/>
+ <command name="glLockArraysEXT"/>
+ <command name="glUnlockArraysEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_convolution" supported="gl">
+ <require>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum name="GL_REDUCE_EXT"/>
+ <enum name="GL_CONVOLUTION_FORMAT_EXT"/>
+ <enum name="GL_CONVOLUTION_WIDTH_EXT"/>
+ <enum name="GL_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <command name="glConvolutionFilter1DEXT"/>
+ <command name="glConvolutionFilter2DEXT"/>
+ <command name="glConvolutionParameterfEXT"/>
+ <command name="glConvolutionParameterfvEXT"/>
+ <command name="glConvolutionParameteriEXT"/>
+ <command name="glConvolutionParameterivEXT"/>
+ <command name="glCopyConvolutionFilter1DEXT"/>
+ <command name="glCopyConvolutionFilter2DEXT"/>
+ <command name="glGetConvolutionFilterEXT"/>
+ <command name="glGetConvolutionParameterfvEXT"/>
+ <command name="glGetConvolutionParameterivEXT"/>
+ <command name="glGetSeparableFilterEXT"/>
+ <command name="glSeparableFilter2DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_coordinate_frame" supported="gl">
+ <require>
+ <enum name="GL_TANGENT_ARRAY_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_EXT"/>
+ <enum name="GL_CURRENT_TANGENT_EXT"/>
+ <enum name="GL_CURRENT_BINORMAL_EXT"/>
+ <enum name="GL_TANGENT_ARRAY_TYPE_EXT"/>
+ <enum name="GL_TANGENT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_TYPE_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_TANGENT_ARRAY_POINTER_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_POINTER_EXT"/>
+ <enum name="GL_MAP1_TANGENT_EXT"/>
+ <enum name="GL_MAP2_TANGENT_EXT"/>
+ <enum name="GL_MAP1_BINORMAL_EXT"/>
+ <enum name="GL_MAP2_BINORMAL_EXT"/>
+ <command name="glTangent3bEXT"/>
+ <command name="glTangent3bvEXT"/>
+ <command name="glTangent3dEXT"/>
+ <command name="glTangent3dvEXT"/>
+ <command name="glTangent3fEXT"/>
+ <command name="glTangent3fvEXT"/>
+ <command name="glTangent3iEXT"/>
+ <command name="glTangent3ivEXT"/>
+ <command name="glTangent3sEXT"/>
+ <command name="glTangent3svEXT"/>
+ <command name="glBinormal3bEXT"/>
+ <command name="glBinormal3bvEXT"/>
+ <command name="glBinormal3dEXT"/>
+ <command name="glBinormal3dvEXT"/>
+ <command name="glBinormal3fEXT"/>
+ <command name="glBinormal3fvEXT"/>
+ <command name="glBinormal3iEXT"/>
+ <command name="glBinormal3ivEXT"/>
+ <command name="glBinormal3sEXT"/>
+ <command name="glBinormal3svEXT"/>
+ <command name="glTangentPointerEXT"/>
+ <command name="glBinormalPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_copy_image" supported="gles2">
+ <require>
+ <command name="glCopyImageSubDataEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_copy_texture" supported="gl">
+ <require>
+ <command name="glCopyTexImage1DEXT"/>
+ <command name="glCopyTexImage2DEXT"/>
+ <command name="glCopyTexSubImage1DEXT"/>
+ <command name="glCopyTexSubImage2DEXT"/>
+ <command name="glCopyTexSubImage3DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_cull_vertex" supported="gl">
+ <require>
+ <enum name="GL_CULL_VERTEX_EXT"/>
+ <enum name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
+ <enum name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
+ <command name="glCullParameterdvEXT"/>
+ <command name="glCullParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_debug_label" supported="gl|gles2">
+ <require>
+ <enum name="GL_PROGRAM_PIPELINE_OBJECT_EXT"/>
+ <enum name="GL_PROGRAM_OBJECT_EXT"/>
+ <enum name="GL_SHADER_OBJECT_EXT"/>
+ <enum name="GL_BUFFER_OBJECT_EXT"/>
+ <enum name="GL_QUERY_OBJECT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_OBJECT_EXT"/>
+ <command name="glLabelObjectEXT"/>
+ <command name="glGetObjectLabelEXT"/>
+ </require>
+ <require comment="Depends on OpenGL ES 3.0">
+ <enum name="GL_SAMPLER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_debug_marker" supported="gl|gles2">
+ <require>
+ <command name="glInsertEventMarkerEXT"/>
+ <command name="glPushGroupMarkerEXT"/>
+ <command name="glPopGroupMarkerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_depth_bounds_test" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_BOUNDS_TEST_EXT"/>
+ <enum name="GL_DEPTH_BOUNDS_EXT"/>
+ <command name="glDepthBoundsEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_direct_state_access" supported="gl" comment="DSA extension doesn't identify which interfaces are core profile and keeps getting expanded. This is in sync with revision 34, 2010/09/07">
+ <require>
+ <enum name="GL_PROGRAM_MATRIX_EXT"/>
+ <enum name="GL_TRANSPOSE_PROGRAM_MATRIX_EXT"/>
+ <enum name="GL_PROGRAM_MATRIX_STACK_DEPTH_EXT"/>
+ </require>
+ <require comment="OpenGL 1.0: New matrix commands">
+ <command name="glMatrixLoadfEXT"/>
+ <command name="glMatrixLoaddEXT"/>
+ <command name="glMatrixMultfEXT"/>
+ <command name="glMatrixMultdEXT"/>
+ <command name="glMatrixLoadIdentityEXT"/>
+ <command name="glMatrixRotatefEXT"/>
+ <command name="glMatrixRotatedEXT"/>
+ <command name="glMatrixScalefEXT"/>
+ <command name="glMatrixScaledEXT"/>
+ <command name="glMatrixTranslatefEXT"/>
+ <command name="glMatrixTranslatedEXT"/>
+ <command name="glMatrixFrustumEXT"/>
+ <command name="glMatrixOrthoEXT"/>
+ <command name="glMatrixPopEXT"/>
+ <command name="glMatrixPushEXT"/>
+ </require>
+ <require comment="OpenGL 1.1: New client commands">
+ <command name="glClientAttribDefaultEXT"/>
+ <command name="glPushClientAttribDefaultEXT"/>
+ </require>
+ <require comment="OpenGL 1.1: New texture object commands">
+ <command name="glTextureParameterfEXT"/>
+ <command name="glTextureParameterfvEXT"/>
+ <command name="glTextureParameteriEXT"/>
+ <command name="glTextureParameterivEXT"/>
+ <command name="glTextureImage1DEXT"/>
+ <command name="glTextureImage2DEXT"/>
+ <command name="glTextureSubImage1DEXT"/>
+ <command name="glTextureSubImage2DEXT"/>
+ <command name="glCopyTextureImage1DEXT"/>
+ <command name="glCopyTextureImage2DEXT"/>
+ <command name="glCopyTextureSubImage1DEXT"/>
+ <command name="glCopyTextureSubImage2DEXT"/>
+ <command name="glGetTextureImageEXT"/>
+ <command name="glGetTextureParameterfvEXT"/>
+ <command name="glGetTextureParameterivEXT"/>
+ <command name="glGetTextureLevelParameterfvEXT"/>
+ <command name="glGetTextureLevelParameterivEXT"/>
+ </require>
+ <require comment="OpenGL 1.2: New 3D texture object commands">
+ <command name="glTextureImage3DEXT"/>
+ <command name="glTextureSubImage3DEXT"/>
+ <command name="glCopyTextureSubImage3DEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: New multitexture commands">
+ <command name="glBindMultiTextureEXT"/>
+ <command name="glMultiTexCoordPointerEXT"/>
+ <command name="glMultiTexEnvfEXT"/>
+ <command name="glMultiTexEnvfvEXT"/>
+ <command name="glMultiTexEnviEXT"/>
+ <command name="glMultiTexEnvivEXT"/>
+ <command name="glMultiTexGendEXT"/>
+ <command name="glMultiTexGendvEXT"/>
+ <command name="glMultiTexGenfEXT"/>
+ <command name="glMultiTexGenfvEXT"/>
+ <command name="glMultiTexGeniEXT"/>
+ <command name="glMultiTexGenivEXT"/>
+ <command name="glGetMultiTexEnvfvEXT"/>
+ <command name="glGetMultiTexEnvivEXT"/>
+ <command name="glGetMultiTexGendvEXT"/>
+ <command name="glGetMultiTexGenfvEXT"/>
+ <command name="glGetMultiTexGenivEXT"/>
+ <command name="glMultiTexParameteriEXT"/>
+ <command name="glMultiTexParameterivEXT"/>
+ <command name="glMultiTexParameterfEXT"/>
+ <command name="glMultiTexParameterfvEXT"/>
+ <command name="glMultiTexImage1DEXT"/>
+ <command name="glMultiTexImage2DEXT"/>
+ <command name="glMultiTexSubImage1DEXT"/>
+ <command name="glMultiTexSubImage2DEXT"/>
+ <command name="glCopyMultiTexImage1DEXT"/>
+ <command name="glCopyMultiTexImage2DEXT"/>
+ <command name="glCopyMultiTexSubImage1DEXT"/>
+ <command name="glCopyMultiTexSubImage2DEXT"/>
+ <command name="glGetMultiTexImageEXT"/>
+ <command name="glGetMultiTexParameterfvEXT"/>
+ <command name="glGetMultiTexParameterivEXT"/>
+ <command name="glGetMultiTexLevelParameterfvEXT"/>
+ <command name="glGetMultiTexLevelParameterivEXT"/>
+ <command name="glMultiTexImage3DEXT"/>
+ <command name="glMultiTexSubImage3DEXT"/>
+ <command name="glCopyMultiTexSubImage3DEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: New indexed texture commands">
+ <command name="glEnableClientStateIndexedEXT"/>
+ <command name="glDisableClientStateIndexedEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: New indexed generic queries">
+ <command name="glGetFloatIndexedvEXT"/>
+ <command name="glGetDoubleIndexedvEXT"/>
+ <command name="glGetPointerIndexedvEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: Extend EXT_draw_buffers2 commands">
+ <command name="glEnableIndexedEXT"/>
+ <command name="glDisableIndexedEXT"/>
+ <command name="glIsEnabledIndexedEXT"/>
+ <command name="glGetIntegerIndexedvEXT"/>
+ <command name="glGetBooleanIndexedvEXT"/>
+ </require>
+ <require comment="OpenGL 1.3: New compressed texture object commands">
+ <command name="glCompressedTextureImage3DEXT"/>
+ <command name="glCompressedTextureImage2DEXT"/>
+ <command name="glCompressedTextureImage1DEXT"/>
+ <command name="glCompressedTextureSubImage3DEXT"/>
+ <command name="glCompressedTextureSubImage2DEXT"/>
+ <command name="glCompressedTextureSubImage1DEXT"/>
+ <command name="glGetCompressedTextureImageEXT"/>
+ </require>
+ <require comment="OpenGL 1.3: New multitexture compressed texture commands">
+ <command name="glCompressedMultiTexImage3DEXT"/>
+ <command name="glCompressedMultiTexImage2DEXT"/>
+ <command name="glCompressedMultiTexImage1DEXT"/>
+ <command name="glCompressedMultiTexSubImage3DEXT"/>
+ <command name="glCompressedMultiTexSubImage2DEXT"/>
+ <command name="glCompressedMultiTexSubImage1DEXT"/>
+ <command name="glGetCompressedMultiTexImageEXT"/>
+ </require>
+ <require comment="OpenGL 1.3: New transpose matrix commands">
+ <command name="glMatrixLoadTransposefEXT"/>
+ <command name="glMatrixLoadTransposedEXT"/>
+ <command name="glMatrixMultTransposefEXT"/>
+ <command name="glMatrixMultTransposedEXT"/>
+ </require>
+ <require comment="OpenGL 1.5: New buffer commands">
+ <command name="glNamedBufferDataEXT"/>
+ <command name="glNamedBufferSubDataEXT"/>
+ <command name="glMapNamedBufferEXT"/>
+ <command name="glUnmapNamedBufferEXT"/>
+ <command name="glGetNamedBufferParameterivEXT"/>
+ <command name="glGetNamedBufferPointervEXT"/>
+ <command name="glGetNamedBufferSubDataEXT"/>
+ </require>
+ <require comment="OpenGL 2.0: New uniform commands">
+ <command name="glProgramUniform1fEXT"/>
+ <command name="glProgramUniform2fEXT"/>
+ <command name="glProgramUniform3fEXT"/>
+ <command name="glProgramUniform4fEXT"/>
+ <command name="glProgramUniform1iEXT"/>
+ <command name="glProgramUniform2iEXT"/>
+ <command name="glProgramUniform3iEXT"/>
+ <command name="glProgramUniform4iEXT"/>
+ <command name="glProgramUniform1fvEXT"/>
+ <command name="glProgramUniform2fvEXT"/>
+ <command name="glProgramUniform3fvEXT"/>
+ <command name="glProgramUniform4fvEXT"/>
+ <command name="glProgramUniform1ivEXT"/>
+ <command name="glProgramUniform2ivEXT"/>
+ <command name="glProgramUniform3ivEXT"/>
+ <command name="glProgramUniform4ivEXT"/>
+ <command name="glProgramUniformMatrix2fvEXT"/>
+ <command name="glProgramUniformMatrix3fvEXT"/>
+ <command name="glProgramUniformMatrix4fvEXT"/>
+ </require>
+ <require comment="OpenGL 2.1: New uniform matrix commands">
+ <command name="glProgramUniformMatrix2x3fvEXT"/>
+ <command name="glProgramUniformMatrix3x2fvEXT"/>
+ <command name="glProgramUniformMatrix2x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x2fvEXT"/>
+ <command name="glProgramUniformMatrix3x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x3fvEXT"/>
+ </require>
+ <require comment="Extend EXT_texture_buffer_object commands">
+ <command name="glTextureBufferEXT"/>
+ <command name="glMultiTexBufferEXT"/>
+ </require>
+ <require comment="Extend EXT_texture_integer commands">
+ <command name="glTextureParameterIivEXT"/>
+ <command name="glTextureParameterIuivEXT"/>
+ <command name="glGetTextureParameterIivEXT"/>
+ <command name="glGetTextureParameterIuivEXT"/>
+ <command name="glMultiTexParameterIivEXT"/>
+ <command name="glMultiTexParameterIuivEXT"/>
+ <command name="glGetMultiTexParameterIivEXT"/>
+ <command name="glGetMultiTexParameterIuivEXT"/>
+ </require>
+ <require comment="Extend EXT_gpu_shader4 commands">
+ <command name="glProgramUniform1uiEXT"/>
+ <command name="glProgramUniform2uiEXT"/>
+ <command name="glProgramUniform3uiEXT"/>
+ <command name="glProgramUniform4uiEXT"/>
+ <command name="glProgramUniform1uivEXT"/>
+ <command name="glProgramUniform2uivEXT"/>
+ <command name="glProgramUniform3uivEXT"/>
+ <command name="glProgramUniform4uivEXT"/>
+ </require>
+ <require comment="Extend EXT_gpu_program_parameters commands">
+ <command name="glNamedProgramLocalParameters4fvEXT"/>
+ </require>
+ <require comment="Extend NV_gpu_program4 commands">
+ <command name="glNamedProgramLocalParameterI4iEXT"/>
+ <command name="glNamedProgramLocalParameterI4ivEXT"/>
+ <command name="glNamedProgramLocalParametersI4ivEXT"/>
+ <command name="glNamedProgramLocalParameterI4uiEXT"/>
+ <command name="glNamedProgramLocalParameterI4uivEXT"/>
+ <command name="glNamedProgramLocalParametersI4uivEXT"/>
+ <command name="glGetNamedProgramLocalParameterIivEXT"/>
+ <command name="glGetNamedProgramLocalParameterIuivEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New indexed texture commands">
+ <command name="glEnableClientStateiEXT"/>
+ <command name="glDisableClientStateiEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New indexed generic queries">
+ <command name="glGetFloati_vEXT"/>
+ <command name="glGetDoublei_vEXT"/>
+ <command name="glGetPointeri_vEXT"/>
+ </require>
+ <require comment="Extend GL_ARB_vertex_program commands">
+ <command name="glNamedProgramStringEXT"/>
+ <command name="glNamedProgramLocalParameter4dEXT"/>
+ <command name="glNamedProgramLocalParameter4dvEXT"/>
+ <command name="glNamedProgramLocalParameter4fEXT"/>
+ <command name="glNamedProgramLocalParameter4fvEXT"/>
+ <command name="glGetNamedProgramLocalParameterdvEXT"/>
+ <command name="glGetNamedProgramLocalParameterfvEXT"/>
+ <command name="glGetNamedProgramivEXT"/>
+ <command name="glGetNamedProgramStringEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New renderbuffer commands">
+ <command name="glNamedRenderbufferStorageEXT"/>
+ <command name="glGetNamedRenderbufferParameterivEXT"/>
+ <command name="glNamedRenderbufferStorageMultisampleEXT"/>
+ </require>
+ <require comment="Extend NV_framebuffer_multisample_coverage">
+ <command name="glNamedRenderbufferStorageMultisampleCoverageEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New framebuffer commands">
+ <command name="glCheckNamedFramebufferStatusEXT"/>
+ <command name="glNamedFramebufferTexture1DEXT"/>
+ <command name="glNamedFramebufferTexture2DEXT"/>
+ <command name="glNamedFramebufferTexture3DEXT"/>
+ <command name="glNamedFramebufferRenderbufferEXT"/>
+ <command name="glGetNamedFramebufferAttachmentParameterivEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New texture commands">
+ <command name="glGenerateTextureMipmapEXT"/>
+ <command name="glGenerateMultiTexMipmapEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New framebuffer commands">
+ <command name="glFramebufferDrawBufferEXT"/>
+ <command name="glFramebufferDrawBuffersEXT"/>
+ <command name="glFramebufferReadBufferEXT"/>
+ <command name="glGetFramebufferParameterivEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New buffer data copy command">
+ <command name="glNamedCopyBufferSubDataEXT"/>
+ </require>
+ <require comment="Extend EXT_geometry_shader4 or NV_gpu_program4">
+ <command name="glNamedFramebufferTextureEXT"/>
+ <command name="glNamedFramebufferTextureLayerEXT"/>
+ <command name="glNamedFramebufferTextureFaceEXT"/>
+ </require>
+ <require comment="Extend NV_explicit_multisample">
+ <command name="glTextureRenderbufferEXT"/>
+ <command name="glMultiTexRenderbufferEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New vertex array specification commands for VAO">
+ <command name="glVertexArrayVertexOffsetEXT"/>
+ <command name="glVertexArrayColorOffsetEXT"/>
+ <command name="glVertexArrayEdgeFlagOffsetEXT"/>
+ <command name="glVertexArrayIndexOffsetEXT"/>
+ <command name="glVertexArrayNormalOffsetEXT"/>
+ <command name="glVertexArrayTexCoordOffsetEXT"/>
+ <command name="glVertexArrayMultiTexCoordOffsetEXT"/>
+ <command name="glVertexArrayFogCoordOffsetEXT"/>
+ <command name="glVertexArraySecondaryColorOffsetEXT"/>
+ <command name="glVertexArrayVertexAttribOffsetEXT"/>
+ <command name="glVertexArrayVertexAttribIOffsetEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New vertex array enable commands for VAO">
+ <command name="glEnableVertexArrayEXT"/>
+ <command name="glDisableVertexArrayEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New vertex attrib array enable commands for VAO">
+ <command name="glEnableVertexArrayAttribEXT"/>
+ <command name="glDisableVertexArrayAttribEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New queries for VAO">
+ <command name="glGetVertexArrayIntegervEXT"/>
+ <command name="glGetVertexArrayPointervEXT"/>
+ <command name="glGetVertexArrayIntegeri_vEXT"/>
+ <command name="glGetVertexArrayPointeri_vEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New buffer commands">
+ <command name="glMapNamedBufferRangeEXT"/>
+ <command name="glFlushMappedNamedBufferRangeEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_buffer_storage">
+ <command name="glNamedBufferStorageEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_clear_buffer_object">
+ <command name="glClearNamedBufferDataEXT"/>
+ <command name="glClearNamedBufferSubDataEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_framebuffer_no_attachments">
+ <command name="glNamedFramebufferParameteriEXT"/>
+ <command name="glGetNamedFramebufferParameterivEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_gpu_shader_fp64">
+ <command name="glProgramUniform1dEXT"/>
+ <command name="glProgramUniform2dEXT"/>
+ <command name="glProgramUniform3dEXT"/>
+ <command name="glProgramUniform4dEXT"/>
+ <command name="glProgramUniform1dvEXT"/>
+ <command name="glProgramUniform2dvEXT"/>
+ <command name="glProgramUniform3dvEXT"/>
+ <command name="glProgramUniform4dvEXT"/>
+ <command name="glProgramUniformMatrix2dvEXT"/>
+ <command name="glProgramUniformMatrix3dvEXT"/>
+ <command name="glProgramUniformMatrix4dvEXT"/>
+ <command name="glProgramUniformMatrix2x3dvEXT"/>
+ <command name="glProgramUniformMatrix2x4dvEXT"/>
+ <command name="glProgramUniformMatrix3x2dvEXT"/>
+ <command name="glProgramUniformMatrix3x4dvEXT"/>
+ <command name="glProgramUniformMatrix4x2dvEXT"/>
+ <command name="glProgramUniformMatrix4x3dvEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_texture_buffer_range">
+ <command name="glTextureBufferRangeEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_texture_storage">
+ <command name="glTextureStorage1DEXT"/>
+ <command name="glTextureStorage2DEXT"/>
+ <command name="glTextureStorage3DEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_texture_storage_multisample">
+ <command name="glTextureStorage2DMultisampleEXT"/>
+ <command name="glTextureStorage3DMultisampleEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_vertex_attrib_binding">
+ <command name="glVertexArrayBindVertexBufferEXT"/>
+ <command name="glVertexArrayVertexAttribFormatEXT"/>
+ <command name="glVertexArrayVertexAttribIFormatEXT"/>
+ <command name="glVertexArrayVertexAttribLFormatEXT"/>
+ <command name="glVertexArrayVertexAttribBindingEXT"/>
+ <command name="glVertexArrayVertexBindingDivisorEXT"/>
+ </require>
+ <require comment="Extended by GL_EXT_vertex_attrib_64bit">
+ <command name="glVertexArrayVertexAttribLOffsetEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_sparse_texture">
+ <command name="glTexturePageCommitmentEXT"/>
+ </require>
+ <require comment="Extended by GL_ARB_instanced_arrays">
+ <command name="glVertexArrayVertexAttribDivisorEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_discard_framebuffer" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COLOR_EXT"/>
+ <enum name="GL_DEPTH_EXT"/>
+ <enum name="GL_STENCIL_EXT"/>
+ <command name="glDiscardFramebufferEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_disjoint_timer_query" supported="gles2">
+ <require>
+ <enum name="GL_QUERY_COUNTER_BITS_EXT"/>
+ <enum name="GL_CURRENT_QUERY_EXT"/>
+ <enum name="GL_QUERY_RESULT_EXT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
+ <enum name="GL_TIME_ELAPSED_EXT"/>
+ <enum name="GL_TIMESTAMP_EXT"/>
+ <enum name="GL_GPU_DISJOINT_EXT"/>
+ <command name="glGenQueriesEXT"/>
+ <command name="glDeleteQueriesEXT"/>
+ <command name="glIsQueryEXT"/>
+ <command name="glBeginQueryEXT"/>
+ <command name="glEndQueryEXT"/>
+ <command name="glQueryCounterEXT"/>
+ <command name="glGetQueryivEXT"/>
+ <command name="glGetQueryObjectivEXT"/>
+ <command name="glGetQueryObjectuivEXT"/>
+ <command name="glGetQueryObjecti64vEXT"/>
+ <command name="glGetQueryObjectui64vEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_buffers" supported="gles2">
+ <require>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
+ <enum name="GL_MAX_DRAW_BUFFERS_EXT"/>
+ <enum name="GL_DRAW_BUFFER0_EXT"/>
+ <enum name="GL_DRAW_BUFFER1_EXT"/>
+ <enum name="GL_DRAW_BUFFER2_EXT"/>
+ <enum name="GL_DRAW_BUFFER3_EXT"/>
+ <enum name="GL_DRAW_BUFFER4_EXT"/>
+ <enum name="GL_DRAW_BUFFER5_EXT"/>
+ <enum name="GL_DRAW_BUFFER6_EXT"/>
+ <enum name="GL_DRAW_BUFFER7_EXT"/>
+ <enum name="GL_DRAW_BUFFER8_EXT"/>
+ <enum name="GL_DRAW_BUFFER9_EXT"/>
+ <enum name="GL_DRAW_BUFFER10_EXT"/>
+ <enum name="GL_DRAW_BUFFER11_EXT"/>
+ <enum name="GL_DRAW_BUFFER12_EXT"/>
+ <enum name="GL_DRAW_BUFFER13_EXT"/>
+ <enum name="GL_DRAW_BUFFER14_EXT"/>
+ <enum name="GL_DRAW_BUFFER15_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT0_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT1_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT2_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT3_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT4_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT5_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT6_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT7_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT8_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT9_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT10_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT11_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT12_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT13_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT14_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT15_EXT"/>
+ <command name="glDrawBuffersEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_buffers2" supported="gl">
+ <require>
+ <command name="glColorMaskIndexedEXT"/>
+ <command name="glGetBooleanIndexedvEXT"/>
+ <command name="glGetIntegerIndexedvEXT"/>
+ <command name="glEnableIndexedEXT"/>
+ <command name="glDisableIndexedEXT"/>
+ <command name="glIsEnabledIndexedEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_buffers_indexed" supported="gles2">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum name="GL_BLEND_SRC_RGB"/>
+ <enum name="GL_BLEND_SRC_ALPHA"/>
+ <enum name="GL_BLEND_DST_RGB"/>
+ <enum name="GL_BLEND_DST_ALPHA"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_FUNC_ADD"/>
+ <enum name="GL_FUNC_SUBTRACT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <enum name="GL_MIN"/>
+ <enum name="GL_MAX"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_CONSTANT_COLOR"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum name="GL_CONSTANT_ALPHA"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <command name="glEnableiEXT"/>
+ <command name="glDisableiEXT"/>
+ <command name="glBlendEquationiEXT"/>
+ <command name="glBlendEquationSeparateiEXT"/>
+ <command name="glBlendFunciEXT"/>
+ <command name="glBlendFuncSeparateiEXT"/>
+ <command name="glColorMaskiEXT"/>
+ <command name="glIsEnablediEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_instanced" supported="gl|gles2">
+ <require>
+ <command name="glDrawArraysInstancedEXT"/>
+ <command name="glDrawElementsInstancedEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_range_elements" supported="gl">
+ <require>
+ <enum name="GL_MAX_ELEMENTS_VERTICES_EXT"/>
+ <enum name="GL_MAX_ELEMENTS_INDICES_EXT"/>
+ <command name="glDrawRangeElementsEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_fog_coord" supported="gl">
+ <require>
+ <enum name="GL_FOG_COORDINATE_SOURCE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_EXT"/>
+ <enum name="GL_FRAGMENT_DEPTH_EXT"/>
+ <enum name="GL_CURRENT_FOG_COORDINATE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_TYPE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_POINTER_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_EXT"/>
+ <command name="glFogCoordfEXT"/>
+ <command name="glFogCoordfvEXT"/>
+ <command name="glFogCoorddEXT"/>
+ <command name="glFogCoorddvEXT"/>
+ <command name="glFogCoordPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_blit" supported="gl">
+ <require>
+ <enum name="GL_READ_FRAMEBUFFER_EXT"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_EXT"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_EXT"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_EXT"/>
+ <command name="glBlitFramebufferEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_multisample" supported="gl">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
+ <enum name="GL_MAX_SAMPLES_EXT"/>
+ <command name="glRenderbufferStorageMultisampleEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_multisample_blit_scaled" supported="gl">
+ <require>
+ <enum name="GL_SCALED_RESOLVE_FASTEST_EXT"/>
+ <enum name="GL_SCALED_RESOLVE_NICEST_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_object" supported="gl">
+ <require>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_BINDING_EXT"/>
+ <enum name="GL_RENDERBUFFER_BINDING_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED_EXT"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT0_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT1_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT2_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT3_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT4_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT5_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT6_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT7_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT8_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT9_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT10_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT11_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT12_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT13_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT14_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT15_EXT"/>
+ <enum name="GL_DEPTH_ATTACHMENT_EXT"/>
+ <enum name="GL_STENCIL_ATTACHMENT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_EXT"/>
+ <enum name="GL_RENDERBUFFER_EXT"/>
+ <enum name="GL_RENDERBUFFER_WIDTH_EXT"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT_EXT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT_EXT"/>
+ <enum name="GL_STENCIL_INDEX1_EXT"/>
+ <enum name="GL_STENCIL_INDEX4_EXT"/>
+ <enum name="GL_STENCIL_INDEX8_EXT"/>
+ <enum name="GL_STENCIL_INDEX16_EXT"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE_EXT"/>
+ <command name="glIsRenderbufferEXT"/>
+ <command name="glBindRenderbufferEXT"/>
+ <command name="glDeleteRenderbuffersEXT"/>
+ <command name="glGenRenderbuffersEXT"/>
+ <command name="glRenderbufferStorageEXT"/>
+ <command name="glGetRenderbufferParameterivEXT"/>
+ <command name="glIsFramebufferEXT"/>
+ <command name="glBindFramebufferEXT"/>
+ <command name="glDeleteFramebuffersEXT"/>
+ <command name="glGenFramebuffersEXT"/>
+ <command name="glCheckFramebufferStatusEXT"/>
+ <command name="glFramebufferTexture1DEXT"/>
+ <command name="glFramebufferTexture2DEXT"/>
+ <command name="glFramebufferTexture3DEXT"/>
+ <command name="glFramebufferRenderbufferEXT"/>
+ <command name="glGetFramebufferAttachmentParameterivEXT"/>
+ <command name="glGenerateMipmapEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_sRGB" supported="gl">
+ <require>
+ <enum name="GL_FRAMEBUFFER_SRGB_EXT"/>
+ <enum name="GL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_geometry_point_size" supported="gles2"/>
+ <extension name="GL_EXT_geometry_shader" supported="gles2">
+ <require>
+ <enum name="GL_GEOMETRY_SHADER_EXT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT_EXT"/>
+ <enum name="GL_GEOMETRY_LINKED_VERTICES_OUT_EXT"/>
+ <enum name="GL_GEOMETRY_LINKED_INPUT_TYPE_EXT"/>
+ <enum name="GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT"/>
+ <enum name="GL_GEOMETRY_SHADER_INVOCATIONS_EXT"/>
+ <enum name="GL_LAYER_PROVOKING_VERTEX_EXT"/>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT"/>
+ <enum name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_UNDEFINED_VERTEX_EXT"/>
+ <enum name="GL_PRIMITIVES_GENERATED_EXT"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT"/>
+ <enum name="GL_MAX_FRAMEBUFFER_LAYERS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum name="GL_REFERENCED_BY_GEOMETRY_SHADER_EXT"/>
+ <command name="glFramebufferTextureEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_geometry_shader4" supported="gl">
+ <require>
+ <enum name="GL_GEOMETRY_SHADER_EXT"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT_EXT"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE_EXT"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_VARYING_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT"/>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <enum name="GL_PROGRAM_POINT_SIZE_EXT"/>
+ <command name="glProgramParameteriEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_gpu_program_parameters" supported="gl">
+ <require>
+ <command name="glProgramEnvParameters4fvEXT"/>
+ <command name="glProgramLocalParameters4fvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_gpu_shader4" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT"/>
+ <enum name="GL_SAMPLER_1D_ARRAY_EXT"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_EXT"/>
+ <enum name="GL_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_SAMPLER_1D_ARRAY_SHADOW_EXT"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW_EXT"/>
+ <enum name="GL_SAMPLER_CUBE_SHADOW_EXT"/>
+ <enum name="GL_UNSIGNED_INT_VEC2_EXT"/>
+ <enum name="GL_UNSIGNED_INT_VEC3_EXT"/>
+ <enum name="GL_UNSIGNED_INT_VEC4_EXT"/>
+ <enum name="GL_INT_SAMPLER_1D_EXT"/>
+ <enum name="GL_INT_SAMPLER_2D_EXT"/>
+ <enum name="GL_INT_SAMPLER_3D_EXT"/>
+ <enum name="GL_INT_SAMPLER_CUBE_EXT"/>
+ <enum name="GL_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum name="GL_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum name="GL_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum name="GL_INT_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_3D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <command name="glGetUniformuivEXT"/>
+ <command name="glBindFragDataLocationEXT"/>
+ <command name="glGetFragDataLocationEXT"/>
+ <command name="glUniform1uiEXT"/>
+ <command name="glUniform2uiEXT"/>
+ <command name="glUniform3uiEXT"/>
+ <command name="glUniform4uiEXT"/>
+ <command name="glUniform1uivEXT"/>
+ <command name="glUniform2uivEXT"/>
+ <command name="glUniform3uivEXT"/>
+ <command name="glUniform4uivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_gpu_shader5" supported="gles2">
+ <require/>
+ </extension>
+ <extension name="GL_EXT_histogram" supported="gl">
+ <require>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_PROXY_HISTOGRAM_EXT"/>
+ <enum name="GL_HISTOGRAM_WIDTH_EXT"/>
+ <enum name="GL_HISTOGRAM_FORMAT_EXT"/>
+ <enum name="GL_HISTOGRAM_RED_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_SINK_EXT"/>
+ <enum name="GL_MINMAX_EXT"/>
+ <enum name="GL_MINMAX_FORMAT_EXT"/>
+ <enum name="GL_MINMAX_SINK_EXT"/>
+ <enum name="GL_TABLE_TOO_LARGE_EXT"/>
+ <command name="glGetHistogramEXT"/>
+ <command name="glGetHistogramParameterfvEXT"/>
+ <command name="glGetHistogramParameterivEXT"/>
+ <command name="glGetMinmaxEXT"/>
+ <command name="glGetMinmaxParameterfvEXT"/>
+ <command name="glGetMinmaxParameterivEXT"/>
+ <command name="glHistogramEXT"/>
+ <command name="glMinmaxEXT"/>
+ <command name="glResetHistogramEXT"/>
+ <command name="glResetMinmaxEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_array_formats" supported="gl">
+ <require>
+ <enum name="GL_IUI_V2F_EXT"/>
+ <enum name="GL_IUI_V3F_EXT"/>
+ <enum name="GL_IUI_N3F_V2F_EXT"/>
+ <enum name="GL_IUI_N3F_V3F_EXT"/>
+ <enum name="GL_T2F_IUI_V2F_EXT"/>
+ <enum name="GL_T2F_IUI_V3F_EXT"/>
+ <enum name="GL_T2F_IUI_N3F_V2F_EXT"/>
+ <enum name="GL_T2F_IUI_N3F_V3F_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_func" supported="gl">
+ <require>
+ <enum name="GL_INDEX_TEST_EXT"/>
+ <enum name="GL_INDEX_TEST_FUNC_EXT"/>
+ <enum name="GL_INDEX_TEST_REF_EXT"/>
+ <command name="glIndexFuncEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_material" supported="gl">
+ <require>
+ <enum name="GL_INDEX_MATERIAL_EXT"/>
+ <enum name="GL_INDEX_MATERIAL_PARAMETER_EXT"/>
+ <enum name="GL_INDEX_MATERIAL_FACE_EXT"/>
+ <command name="glIndexMaterialEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_texture" supported="gl"/>
+ <extension name="GL_EXT_instanced_arrays" supported="gles2">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT"/>
+ <command name="glDrawArraysInstancedEXT"/>
+ <command name="glDrawElementsInstancedEXT"/>
+ <command name="glVertexAttribDivisorEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_light_texture" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_MATERIAL_EXT"/>
+ <enum name="GL_FRAGMENT_NORMAL_EXT"/>
+ <enum name="GL_FRAGMENT_COLOR_EXT"/>
+ <enum name="GL_ATTENUATION_EXT"/>
+ <enum name="GL_SHADOW_ATTENUATION_EXT"/>
+ <enum name="GL_TEXTURE_APPLICATION_MODE_EXT"/>
+ <enum name="GL_TEXTURE_LIGHT_EXT"/>
+ <enum name="GL_TEXTURE_MATERIAL_FACE_EXT"/>
+ <enum name="GL_TEXTURE_MATERIAL_PARAMETER_EXT"/>
+ <enum name="GL_FRAGMENT_DEPTH_EXT"/>
+ <command name="glApplyTextureEXT"/>
+ <command name="glTextureLightEXT"/>
+ <command name="glTextureMaterialEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_map_buffer_range" supported="gles1|gles2">
+ <require>
+ <enum name="GL_MAP_READ_BIT_EXT"/>
+ <enum name="GL_MAP_WRITE_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
+ <command name="glMapBufferRangeEXT"/>
+ <command name="glFlushMappedBufferRangeEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_misc_attribute" supported="gl"/>
+ <extension name="GL_EXT_multi_draw_arrays" supported="gl|gles1|gles2">
+ <require>
+ <command name="glMultiDrawArraysEXT"/>
+ <command name="glMultiDrawElementsEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_EXT"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_EXT"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_EXT"/>
+ <enum name="GL_SAMPLE_MASK_EXT"/>
+ <enum name="GL_1PASS_EXT"/>
+ <enum name="GL_2PASS_0_EXT"/>
+ <enum name="GL_2PASS_1_EXT"/>
+ <enum name="GL_4PASS_0_EXT"/>
+ <enum name="GL_4PASS_1_EXT"/>
+ <enum name="GL_4PASS_2_EXT"/>
+ <enum name="GL_4PASS_3_EXT"/>
+ <enum name="GL_SAMPLE_BUFFERS_EXT"/>
+ <enum name="GL_SAMPLES_EXT"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_EXT"/>
+ <enum name="GL_SAMPLE_MASK_INVERT_EXT"/>
+ <enum name="GL_SAMPLE_PATTERN_EXT"/>
+ <enum name="GL_MULTISAMPLE_BIT_EXT"/>
+ <command name="glSampleMaskEXT"/>
+ <command name="glSamplePatternEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multisampled_render_to_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
+ <enum name="GL_MAX_SAMPLES_EXT"/>
+ <command name="glRenderbufferStorageMultisampleEXT"/>
+ <command name="glFramebufferTexture2DMultisampleEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multiview_draw_buffers" supported="gles2">
+ <require>
+ <enum name="GL_COLOR_ATTACHMENT_EXT"/>
+ <enum name="GL_MULTIVIEW_EXT"/>
+ <enum name="GL_DRAW_BUFFER_EXT"/>
+ <enum name="GL_READ_BUFFER_EXT"/>
+ <enum name="GL_MAX_MULTIVIEW_BUFFERS_EXT"/>
+ <command name="glReadBufferIndexedEXT"/>
+ <command name="glDrawBuffersIndexedEXT"/>
+ <command name="glGetIntegeri_vEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_occlusion_query_boolean" supported="gles2">
+ <require>
+ <enum name="GL_ANY_SAMPLES_PASSED_EXT"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT"/>
+ <enum name="GL_CURRENT_QUERY_EXT"/>
+ <enum name="GL_QUERY_RESULT_EXT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
+ <command name="glGenQueriesEXT"/>
+ <command name="glDeleteQueriesEXT"/>
+ <command name="glIsQueryEXT"/>
+ <command name="glBeginQueryEXT"/>
+ <command name="glEndQueryEXT"/>
+ <command name="glGetQueryivEXT"/>
+ <command name="glGetQueryObjectuivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_packed_depth_stencil" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_EXT"/>
+ <enum name="GL_UNSIGNED_INT_24_8_EXT"/>
+ <enum name="GL_DEPTH24_STENCIL8_EXT"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_packed_float" supported="gl">
+ <require>
+ <enum name="GL_R11F_G11F_B10F_EXT"/>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV_EXT"/>
+ <enum name="GL_RGBA_SIGNED_COMPONENTS_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_packed_pixels" supported="gl">
+ <require>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_paletted_texture" supported="gl">
+ <require>
+ <enum name="GL_COLOR_INDEX1_EXT"/>
+ <enum name="GL_COLOR_INDEX2_EXT"/>
+ <enum name="GL_COLOR_INDEX4_EXT"/>
+ <enum name="GL_COLOR_INDEX8_EXT"/>
+ <enum name="GL_COLOR_INDEX12_EXT"/>
+ <enum name="GL_COLOR_INDEX16_EXT"/>
+ <enum name="GL_TEXTURE_INDEX_SIZE_EXT"/>
+ <command name="glColorTableEXT"/>
+ <command name="glGetColorTableEXT"/>
+ <command name="glGetColorTableParameterivEXT"/>
+ <command name="glGetColorTableParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pixel_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_PACK_BUFFER_EXT"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_EXT"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING_EXT"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pixel_transform" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TRANSFORM_2D_EXT"/>
+ <enum name="GL_PIXEL_MAG_FILTER_EXT"/>
+ <enum name="GL_PIXEL_MIN_FILTER_EXT"/>
+ <enum name="GL_PIXEL_CUBIC_WEIGHT_EXT"/>
+ <enum name="GL_CUBIC_EXT"/>
+ <enum name="GL_AVERAGE_EXT"/>
+ <enum name="GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum name="GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum name="GL_PIXEL_TRANSFORM_2D_MATRIX_EXT"/>
+ <command name="glPixelTransformParameteriEXT"/>
+ <command name="glPixelTransformParameterfEXT"/>
+ <command name="glPixelTransformParameterivEXT"/>
+ <command name="glPixelTransformParameterfvEXT"/>
+ <command name="glGetPixelTransformParameterivEXT"/>
+ <command name="glGetPixelTransformParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pixel_transform_color_table" supported="gl"/>
+ <extension name="GL_EXT_point_parameters" supported="gl">
+ <require>
+ <enum name="GL_POINT_SIZE_MIN_EXT"/>
+ <enum name="GL_POINT_SIZE_MAX_EXT"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+ <enum name="GL_DISTANCE_ATTENUATION_EXT"/>
+ <command name="glPointParameterfEXT"/>
+ <command name="glPointParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_polygon_offset" supported="gl">
+ <require>
+ <enum name="GL_POLYGON_OFFSET_EXT"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR_EXT"/>
+ <enum name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+ <command name="glPolygonOffsetEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_primitive_bounding_box" supported="gles2">
+ <require>
+ <enum name="GL_PRIMITIVE_BOUNDING_BOX_EXT"/>
+ <command name="glPrimitiveBoundingBoxEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_provoking_vertex" supported="gl">
+ <require>
+ <enum name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_PROVOKING_VERTEX_EXT"/>
+ <command name="glProvokingVertexEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pvrtc_sRGB" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_read_format_bgra" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_rescale_normal" supported="gl">
+ <require>
+ <enum name="GL_RESCALE_NORMAL_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_robustness" supported="gles1|gles2">
+ <require>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_GUILTY_CONTEXT_RESET_EXT"/>
+ <enum name="GL_INNOCENT_CONTEXT_RESET_EXT"/>
+ <enum name="GL_UNKNOWN_CONTEXT_RESET_EXT"/>
+ <enum name="GL_CONTEXT_ROBUST_ACCESS_EXT"/>
+ <enum name="GL_RESET_NOTIFICATION_STRATEGY_EXT"/>
+ <enum name="GL_LOSE_CONTEXT_ON_RESET_EXT"/>
+ <enum name="GL_NO_RESET_NOTIFICATION_EXT"/>
+ <command name="glGetGraphicsResetStatusEXT"/>
+ <command name="glReadnPixelsEXT"/>
+ <command name="glGetnUniformfvEXT"/>
+ <command name="glGetnUniformivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_sRGB" supported="gles1|gles2">
+ <require>
+ <enum name="GL_SRGB_EXT"/>
+ <enum name="GL_SRGB_ALPHA_EXT"/>
+ <enum name="GL_SRGB8_ALPHA8_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_sRGB_write_control" supported="gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_SRGB_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_secondary_color" supported="gl">
+ <require>
+ <enum name="GL_COLOR_SUM_EXT"/>
+ <enum name="GL_CURRENT_SECONDARY_COLOR_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_SIZE_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_TYPE_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_POINTER_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_EXT"/>
+ <command name="glSecondaryColor3bEXT"/>
+ <command name="glSecondaryColor3bvEXT"/>
+ <command name="glSecondaryColor3dEXT"/>
+ <command name="glSecondaryColor3dvEXT"/>
+ <command name="glSecondaryColor3fEXT"/>
+ <command name="glSecondaryColor3fvEXT"/>
+ <command name="glSecondaryColor3iEXT"/>
+ <command name="glSecondaryColor3ivEXT"/>
+ <command name="glSecondaryColor3sEXT"/>
+ <command name="glSecondaryColor3svEXT"/>
+ <command name="glSecondaryColor3ubEXT"/>
+ <command name="glSecondaryColor3ubvEXT"/>
+ <command name="glSecondaryColor3uiEXT"/>
+ <command name="glSecondaryColor3uivEXT"/>
+ <command name="glSecondaryColor3usEXT"/>
+ <command name="glSecondaryColor3usvEXT"/>
+ <command name="glSecondaryColorPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_separate_shader_objects" supported="gl|gles2">
+ <require api="gl" comment="The OpenGL version of this extension is completely unrelated to the OpenGL ES version">
+ <enum name="GL_ACTIVE_PROGRAM_EXT"/>
+ <command name="glUseShaderProgramEXT"/>
+ <command name="glActiveProgramEXT"/>
+ <command name="glCreateShaderProgramEXT"/>
+ </require>
+ <require api="gles2" comment="The OpenGL ES version of this extension is completely unrelated to the OpenGL version">
+ <enum name="GL_VERTEX_SHADER_BIT_EXT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT_EXT"/>
+ <enum name="GL_ALL_SHADER_BITS_EXT"/>
+ <enum name="GL_PROGRAM_SEPARABLE_EXT"/>
+ <enum name="GL_ACTIVE_PROGRAM_EXT"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING_EXT"/>
+ <command name="glActiveShaderProgramEXT"/>
+ <command name="glBindProgramPipelineEXT"/>
+ <command name="glCreateShaderProgramvEXT"/>
+ <command name="glDeleteProgramPipelinesEXT"/>
+ <command name="glGenProgramPipelinesEXT"/>
+ <command name="glGetProgramPipelineInfoLogEXT"/>
+ <command name="glGetProgramPipelineivEXT"/>
+ <command name="glIsProgramPipelineEXT"/>
+ <command name="glProgramParameteriEXT"/>
+ <command name="glProgramUniform1fEXT"/>
+ <command name="glProgramUniform1fvEXT"/>
+ <command name="glProgramUniform1iEXT"/>
+ <command name="glProgramUniform1ivEXT"/>
+ <command name="glProgramUniform2fEXT"/>
+ <command name="glProgramUniform2fvEXT"/>
+ <command name="glProgramUniform2iEXT"/>
+ <command name="glProgramUniform2ivEXT"/>
+ <command name="glProgramUniform3fEXT"/>
+ <command name="glProgramUniform3fvEXT"/>
+ <command name="glProgramUniform3iEXT"/>
+ <command name="glProgramUniform3ivEXT"/>
+ <command name="glProgramUniform4fEXT"/>
+ <command name="glProgramUniform4fvEXT"/>
+ <command name="glProgramUniform4iEXT"/>
+ <command name="glProgramUniform4ivEXT"/>
+ <command name="glProgramUniformMatrix2fvEXT"/>
+ <command name="glProgramUniformMatrix3fvEXT"/>
+ <command name="glProgramUniformMatrix4fvEXT"/>
+ <command name="glUseProgramStagesEXT"/>
+ <command name="glValidateProgramPipelineEXT"/>
+ </require>
+ <require api="gles2" comment="Depends on OpenGL ES 3.0 or GL_NV_non_square_matrices">
+ <command name="glProgramUniform1uiEXT"/>
+ <command name="glProgramUniform2uiEXT"/>
+ <command name="glProgramUniform3uiEXT"/>
+ <command name="glProgramUniform4uiEXT"/>
+ <command name="glProgramUniform1uivEXT"/>
+ <command name="glProgramUniform2uivEXT"/>
+ <command name="glProgramUniform3uivEXT"/>
+ <command name="glProgramUniform4uivEXT"/>
+ <command name="glProgramUniformMatrix4fvEXT"/>
+ <command name="glProgramUniformMatrix2x3fvEXT"/>
+ <command name="glProgramUniformMatrix3x2fvEXT"/>
+ <command name="glProgramUniformMatrix2x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x2fvEXT"/>
+ <command name="glProgramUniformMatrix3x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x3fvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_separate_specular_color" supported="gl">
+ <require>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
+ <enum name="GL_SINGLE_COLOR_EXT"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_framebuffer_fetch" supported="gles2">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_image_load_formatted" supported="gl"/>
+ <extension name="GL_EXT_shader_image_load_store" supported="gl">
+ <require>
+ <enum name="GL_MAX_IMAGE_UNITS_EXT"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT"/>
+ <enum name="GL_IMAGE_BINDING_NAME_EXT"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL_EXT"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED_EXT"/>
+ <enum name="GL_IMAGE_BINDING_LAYER_EXT"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS_EXT"/>
+ <enum name="GL_IMAGE_1D_EXT"/>
+ <enum name="GL_IMAGE_2D_EXT"/>
+ <enum name="GL_IMAGE_3D_EXT"/>
+ <enum name="GL_IMAGE_2D_RECT_EXT"/>
+ <enum name="GL_IMAGE_CUBE_EXT"/>
+ <enum name="GL_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_IMAGE_1D_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_2D_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_1D_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_EXT"/>
+ <enum name="GL_INT_IMAGE_3D_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_RECT_EXT"/>
+ <enum name="GL_INT_IMAGE_CUBE_EXT"/>
+ <enum name="GL_INT_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum name="GL_MAX_IMAGE_SAMPLES_EXT"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT_EXT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT_EXT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT_EXT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
+ <enum name="GL_ALL_BARRIER_BITS_EXT"/>
+ <command name="glBindImageTextureEXT"/>
+ <command name="glMemoryBarrierEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_implicit_conversions" supported="gles2"/>
+ <extension name="GL_EXT_shader_integer_mix" supported="gl|gles2"/>
+ <extension name="GL_EXT_shader_io_blocks" supported="gles2"/>
+ <extension name="GL_EXT_shader_pixel_local_storage" supported="gles2">
+ <require>
+ <enum name="GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT"/>
+ <enum name="GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT"/>
+ <enum name="GL_SHADER_PIXEL_LOCAL_STORAGE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_texture_lod" supported="gles2"/>
+ <extension name="GL_EXT_shadow_funcs" supported="gl"/>
+ <extension name="GL_EXT_shadow_samplers" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_MODE_EXT"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC_EXT"/>
+ <enum name="GL_COMPARE_REF_TO_TEXTURE_EXT"/>
+ <enum name="GL_SAMPLER_2D_SHADOW_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shared_texture_palette" supported="gl">
+ <require>
+ <enum name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_stencil_clear_tag" supported="gl">
+ <require>
+ <enum name="GL_STENCIL_TAG_BITS_EXT"/>
+ <enum name="GL_STENCIL_CLEAR_TAG_VALUE_EXT"/>
+ <command name="glStencilClearTagEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_stencil_two_side" supported="gl">
+ <require>
+ <enum name="GL_STENCIL_TEST_TWO_SIDE_EXT"/>
+ <enum name="GL_ACTIVE_STENCIL_FACE_EXT"/>
+ <command name="glActiveStencilFaceEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_stencil_wrap" supported="gl">
+ <require>
+ <enum name="GL_INCR_WRAP_EXT"/>
+ <enum name="GL_DECR_WRAP_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_subtexture" supported="gl">
+ <require>
+ <command name="glTexSubImage1DEXT"/>
+ <command name="glTexSubImage2DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_tessellation_point_size" supported="gles2"/>
+ <extension name="GL_EXT_tessellation_shader" supported="gles2">
+ <require>
+ <enum name="GL_PATCHES_EXT"/>
+ <enum name="GL_PATCH_VERTICES_EXT"/>
+ <enum name="GL_TESS_CONTROL_OUTPUT_VERTICES_EXT"/>
+ <enum name="GL_TESS_GEN_MODE_EXT"/>
+ <enum name="GL_TESS_GEN_SPACING_EXT"/>
+ <enum name="GL_TESS_GEN_VERTEX_ORDER_EXT"/>
+ <enum name="GL_TESS_GEN_POINT_MODE_EXT"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_ISOLINES_EXT"/>
+ <enum name="GL_QUADS_EXT"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_FRACTIONAL_ODD_EXT"/>
+ <enum name="GL_FRACTIONAL_EVEN_EXT"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_MAX_PATCH_VERTICES_EXT"/>
+ <enum name="GL_MAX_TESS_GEN_LEVEL_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TESS_PATCH_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT"/>
+ <enum name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT"/>
+ <enum name="GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED"/>
+ <enum name="GL_IS_PER_PATCH_EXT"/>
+ <enum name="GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT"/>
+ <enum name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_EXT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_EXT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT_EXT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT_EXT"/>
+ <command name="glPatchParameteriEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture" supported="gl">
+ <require>
+ <enum name="GL_ALPHA4_EXT"/>
+ <enum name="GL_ALPHA8_EXT"/>
+ <enum name="GL_ALPHA12_EXT"/>
+ <enum name="GL_ALPHA16_EXT"/>
+ <enum name="GL_LUMINANCE4_EXT"/>
+ <enum name="GL_LUMINANCE8_EXT"/>
+ <enum name="GL_LUMINANCE12_EXT"/>
+ <enum name="GL_LUMINANCE16_EXT"/>
+ <enum name="GL_LUMINANCE4_ALPHA4_EXT"/>
+ <enum name="GL_LUMINANCE6_ALPHA2_EXT"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_EXT"/>
+ <enum name="GL_LUMINANCE12_ALPHA4_EXT"/>
+ <enum name="GL_LUMINANCE12_ALPHA12_EXT"/>
+ <enum name="GL_LUMINANCE16_ALPHA16_EXT"/>
+ <enum name="GL_INTENSITY_EXT"/>
+ <enum name="GL_INTENSITY4_EXT"/>
+ <enum name="GL_INTENSITY8_EXT"/>
+ <enum name="GL_INTENSITY12_EXT"/>
+ <enum name="GL_INTENSITY16_EXT"/>
+ <enum name="GL_RGB2_EXT"/>
+ <enum name="GL_RGB4_EXT"/>
+ <enum name="GL_RGB5_EXT"/>
+ <enum name="GL_RGB8_EXT"/>
+ <enum name="GL_RGB10_EXT"/>
+ <enum name="GL_RGB12_EXT"/>
+ <enum name="GL_RGB16_EXT"/>
+ <enum name="GL_RGBA2_EXT"/>
+ <enum name="GL_RGBA4_EXT"/>
+ <enum name="GL_RGB5_A1_EXT"/>
+ <enum name="GL_RGBA8_EXT"/>
+ <enum name="GL_RGB10_A2_EXT"/>
+ <enum name="GL_RGBA12_EXT"/>
+ <enum name="GL_RGBA16_EXT"/>
+ <enum name="GL_TEXTURE_RED_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE_EXT"/>
+ <enum name="GL_REPLACE_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_1D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_2D_EXT"/>
+ <enum name="GL_TEXTURE_TOO_LARGE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture3D" supported="gl">
+ <require>
+ <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_DEPTH_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+ <command name="glTexImage3DEXT"/>
+ <command name="glTexSubImage3DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_array" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_1D_ARRAY_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_1D_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_2D_ARRAY_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_2D_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_1D_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY_EXT"/>
+ <enum name="GL_MAX_ARRAY_TEXTURE_LAYERS_EXT"/>
+ <enum name="GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <command name="glFramebufferTextureLayerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_border_clamp" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_BORDER_COLOR_EXT"/>
+ <enum name="GL_CLAMP_TO_BORDER_EXT"/>
+ <command name="glTexParameterIivEXT"/>
+ <command name="glTexParameterIuivEXT"/>
+ <command name="glGetTexParameterIivEXT"/>
+ <command name="glGetTexParameterIuivEXT"/>
+ <command name="glSamplerParameterIivEXT"/>
+ <command name="glSamplerParameterIuivEXT"/>
+ <command name="glGetSamplerParameterIivEXT"/>
+ <command name="glGetSamplerParameterIuivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_buffer" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_BINDING_EXT"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT"/>
+ <enum name="GL_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_INT_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_INT_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_SIZE_EXT"/>
+ <command name="glTexBufferEXT"/>
+ <command name="glTexBufferRangeEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_EXT"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_FORMAT_EXT"/>
+ <command name="glTexBufferEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_dxt1" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_latc" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_LUMINANCE_LATC1_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_rgtc" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_RED_RGTC1_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1_EXT"/>
+ <enum name="GL_COMPRESSED_RED_GREEN_RGTC2_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_s3tc" supported="gl|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_cube_map" supported="gl" comment="Replaced by ARB_texture_cube_map, but was apparently shipped anyway?">
+ <require>
+ <enum name="GL_NORMAL_MAP_EXT"/>
+ <enum name="GL_REFLECTION_MAP_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_EXT"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_cube_map_array" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT"/>
+ <enum name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_env_add" supported="gl"/>
+ <extension name="GL_EXT_texture_env_combine" supported="gl">
+ <require>
+ <enum name="GL_COMBINE_EXT"/>
+ <enum name="GL_COMBINE_RGB_EXT"/>
+ <enum name="GL_COMBINE_ALPHA_EXT"/>
+ <enum name="GL_RGB_SCALE_EXT"/>
+ <enum name="GL_ADD_SIGNED_EXT"/>
+ <enum name="GL_INTERPOLATE_EXT"/>
+ <enum name="GL_CONSTANT_EXT"/>
+ <enum name="GL_PRIMARY_COLOR_EXT"/>
+ <enum name="GL_PREVIOUS_EXT"/>
+ <enum name="GL_SOURCE0_RGB_EXT"/>
+ <enum name="GL_SOURCE1_RGB_EXT"/>
+ <enum name="GL_SOURCE2_RGB_EXT"/>
+ <enum name="GL_SOURCE0_ALPHA_EXT"/>
+ <enum name="GL_SOURCE1_ALPHA_EXT"/>
+ <enum name="GL_SOURCE2_ALPHA_EXT"/>
+ <enum name="GL_OPERAND0_RGB_EXT"/>
+ <enum name="GL_OPERAND1_RGB_EXT"/>
+ <enum name="GL_OPERAND2_RGB_EXT"/>
+ <enum name="GL_OPERAND0_ALPHA_EXT"/>
+ <enum name="GL_OPERAND1_ALPHA_EXT"/>
+ <enum name="GL_OPERAND2_ALPHA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_env_dot3" supported="gl">
+ <require>
+ <enum name="GL_DOT3_RGB_EXT"/>
+ <enum name="GL_DOT3_RGBA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_filter_anisotropic" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <enum name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_format_BGRA8888" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_integer" supported="gl">
+ <require>
+ <enum name="GL_RGBA32UI_EXT"/>
+ <enum name="GL_RGB32UI_EXT"/>
+ <enum name="GL_ALPHA32UI_EXT"/>
+ <enum name="GL_INTENSITY32UI_EXT"/>
+ <enum name="GL_LUMINANCE32UI_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA32UI_EXT"/>
+ <enum name="GL_RGBA16UI_EXT"/>
+ <enum name="GL_RGB16UI_EXT"/>
+ <enum name="GL_ALPHA16UI_EXT"/>
+ <enum name="GL_INTENSITY16UI_EXT"/>
+ <enum name="GL_LUMINANCE16UI_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA16UI_EXT"/>
+ <enum name="GL_RGBA8UI_EXT"/>
+ <enum name="GL_RGB8UI_EXT"/>
+ <enum name="GL_ALPHA8UI_EXT"/>
+ <enum name="GL_INTENSITY8UI_EXT"/>
+ <enum name="GL_LUMINANCE8UI_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA8UI_EXT"/>
+ <enum name="GL_RGBA32I_EXT"/>
+ <enum name="GL_RGB32I_EXT"/>
+ <enum name="GL_ALPHA32I_EXT"/>
+ <enum name="GL_INTENSITY32I_EXT"/>
+ <enum name="GL_LUMINANCE32I_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA32I_EXT"/>
+ <enum name="GL_RGBA16I_EXT"/>
+ <enum name="GL_RGB16I_EXT"/>
+ <enum name="GL_ALPHA16I_EXT"/>
+ <enum name="GL_INTENSITY16I_EXT"/>
+ <enum name="GL_LUMINANCE16I_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA16I_EXT"/>
+ <enum name="GL_RGBA8I_EXT"/>
+ <enum name="GL_RGB8I_EXT"/>
+ <enum name="GL_ALPHA8I_EXT"/>
+ <enum name="GL_INTENSITY8I_EXT"/>
+ <enum name="GL_LUMINANCE8I_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA8I_EXT"/>
+ <enum name="GL_RED_INTEGER_EXT"/>
+ <enum name="GL_GREEN_INTEGER_EXT"/>
+ <enum name="GL_BLUE_INTEGER_EXT"/>
+ <enum name="GL_ALPHA_INTEGER_EXT"/>
+ <enum name="GL_RGB_INTEGER_EXT"/>
+ <enum name="GL_RGBA_INTEGER_EXT"/>
+ <enum name="GL_BGR_INTEGER_EXT"/>
+ <enum name="GL_BGRA_INTEGER_EXT"/>
+ <enum name="GL_LUMINANCE_INTEGER_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA_INTEGER_EXT"/>
+ <enum name="GL_RGBA_INTEGER_MODE_EXT"/>
+ <command name="glTexParameterIivEXT"/>
+ <command name="glTexParameterIuivEXT"/>
+ <command name="glGetTexParameterIivEXT"/>
+ <command name="glGetTexParameterIuivEXT"/>
+ <command name="glClearColorIiEXT"/>
+ <command name="glClearColorIuiEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_lod_bias" supported="gl|gles1">
+ <require>
+ <enum name="GL_MAX_TEXTURE_LOD_BIAS_EXT"/>
+ <enum name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_mirror_clamp" supported="gl">
+ <require>
+ <enum name="GL_MIRROR_CLAMP_EXT"/>
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE_EXT"/>
+ <enum name="GL_MIRROR_CLAMP_TO_BORDER_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_object" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_PRIORITY_EXT"/>
+ <enum name="GL_TEXTURE_RESIDENT_EXT"/>
+ <enum name="GL_TEXTURE_1D_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_2D_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_3D_BINDING_EXT"/>
+ <command name="glAreTexturesResidentEXT"/>
+ <command name="glBindTextureEXT"/>
+ <command name="glDeleteTexturesEXT"/>
+ <command name="glGenTexturesEXT"/>
+ <command name="glIsTextureEXT"/>
+ <command name="glPrioritizeTexturesEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_perturb_normal" supported="gl">
+ <require>
+ <enum name="GL_PERTURB_EXT"/>
+ <enum name="GL_TEXTURE_NORMAL_EXT"/>
+ <command name="glTextureNormalEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_rg" supported="gles2">
+ <require>
+ <enum name="GL_RED_EXT"/>
+ <enum name="GL_RG_EXT"/>
+ <enum name="GL_R8_EXT"/>
+ <enum name="GL_RG8_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_sRGB" supported="gl">
+ <require>
+ <enum name="GL_SRGB_EXT"/>
+ <enum name="GL_SRGB8_EXT"/>
+ <enum name="GL_SRGB_ALPHA_EXT"/>
+ <enum name="GL_SRGB8_ALPHA8_EXT"/>
+ <enum name="GL_SLUMINANCE_ALPHA_EXT"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8_EXT"/>
+ <enum name="GL_SLUMINANCE_EXT"/>
+ <enum name="GL_SLUMINANCE8_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_EXT"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_EXT"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_sRGB_decode" supported="gl|gles2">
+ <require>
+ <enum name="GL_TEXTURE_SRGB_DECODE_EXT"/>
+ <enum name="GL_DECODE_EXT"/>
+ <enum name="GL_SKIP_DECODE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_shared_exponent" supported="gl">
+ <require>
+ <enum name="GL_RGB9_E5_EXT"/>
+ <enum name="GL_UNSIGNED_INT_5_9_9_9_REV_EXT"/>
+ <enum name="GL_TEXTURE_SHARED_SIZE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_snorm" supported="gl">
+ <require>
+ <enum name="GL_ALPHA_SNORM"/>
+ <enum name="GL_LUMINANCE_SNORM"/>
+ <enum name="GL_LUMINANCE_ALPHA_SNORM"/>
+ <enum name="GL_INTENSITY_SNORM"/>
+ <enum name="GL_ALPHA8_SNORM"/>
+ <enum name="GL_LUMINANCE8_SNORM"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_SNORM"/>
+ <enum name="GL_INTENSITY8_SNORM"/>
+ <enum name="GL_ALPHA16_SNORM"/>
+ <enum name="GL_LUMINANCE16_SNORM"/>
+ <enum name="GL_LUMINANCE16_ALPHA16_SNORM"/>
+ <enum name="GL_INTENSITY16_SNORM"/>
+ <enum name="GL_RED_SNORM"/>
+ <enum name="GL_RG_SNORM"/>
+ <enum name="GL_RGB_SNORM"/>
+ <enum name="GL_RGBA_SNORM"/>
+ <enum name="GL_R8_SNORM"/>
+ <enum name="GL_RG8_SNORM"/>
+ <enum name="GL_RGB8_SNORM"/>
+ <enum name="GL_RGBA8_SNORM"/>
+ <enum name="GL_R16_SNORM"/>
+ <enum name="GL_RG16_SNORM"/>
+ <enum name="GL_RGB16_SNORM"/>
+ <enum name="GL_RGBA16_SNORM"/>
+ <enum name="GL_SIGNED_NORMALIZED"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_storage" supported="gles1|gles2">
+ <require comment="Not clear all of these enums should be here for OpenGL ES. Many are only defined if other extensions also requiring them are supported">
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT_EXT"/>
+ <enum name="GL_ALPHA8_EXT"/>
+ <enum name="GL_LUMINANCE8_EXT"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_EXT"/>
+ <enum name="GL_RGBA32F_EXT"/>
+ <enum name="GL_RGB32F_EXT"/>
+ <enum name="GL_ALPHA32F_EXT"/>
+ <enum name="GL_LUMINANCE32F_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA32F_EXT"/>
+ <enum name="GL_RGBA16F_EXT"/>
+ <enum name="GL_RGB16F_EXT"/>
+ <enum name="GL_ALPHA16F_EXT"/>
+ <enum name="GL_LUMINANCE16F_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA16F_EXT"/>
+ <enum name="GL_RGB10_A2_EXT"/>
+ <enum name="GL_RGB10_EXT"/>
+ <enum name="GL_BGRA8_EXT"/>
+ <enum name="GL_R8_EXT"/>
+ <enum name="GL_RG8_EXT"/>
+ <enum name="GL_R32F_EXT"/>
+ <enum name="GL_RG32F_EXT"/>
+ <enum name="GL_R16F_EXT"/>
+ <enum name="GL_RG16F_EXT"/>
+ <command name="glTexStorage1DEXT"/>
+ <command name="glTexStorage2DEXT"/>
+ <command name="glTexStorage3DEXT"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glTextureStorage1DEXT"/>
+ <command name="glTextureStorage2DEXT"/>
+ <command name="glTextureStorage3DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_swizzle" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_SWIZZLE_R_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_RGBA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_type_2_10_10_10_REV" supported="gles2">
+ <require>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_view" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_VIEW_MIN_LEVEL_EXT"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LEVELS_EXT"/>
+ <enum name="GL_TEXTURE_VIEW_MIN_LAYER_EXT"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LAYERS_EXT"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <command name="glTextureViewEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_timer_query" supported="gl">
+ <require>
+ <enum name="GL_TIME_ELAPSED_EXT"/>
+ <command name="glGetQueryObjecti64vEXT"/>
+ <command name="glGetQueryObjectui64vEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_transform_feedback" supported="gl">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS_EXT"/>
+ <enum name="GL_SEPARATE_ATTRIBS_EXT"/>
+ <enum name="GL_PRIMITIVES_GENERATED_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT"/>
+ <enum name="GL_RASTERIZER_DISCARD_EXT"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT"/>
+ <command name="glBeginTransformFeedbackEXT"/>
+ <command name="glEndTransformFeedbackEXT"/>
+ <command name="glBindBufferRangeEXT"/>
+ <command name="glBindBufferOffsetEXT"/>
+ <command name="glBindBufferBaseEXT"/>
+ <command name="glTransformFeedbackVaryingsEXT"/>
+ <command name="glGetTransformFeedbackVaryingEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_unpack_subimage" supported="gles2">
+ <require>
+ <enum name="GL_UNPACK_ROW_LENGTH_EXT"/>
+ <enum name="GL_UNPACK_SKIP_ROWS_EXT"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_array" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_EXT"/>
+ <enum name="GL_COLOR_ARRAY_EXT"/>
+ <enum name="GL_INDEX_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_COUNT_EXT"/>
+ <enum name="GL_COLOR_ARRAY_SIZE_EXT"/>
+ <enum name="GL_COLOR_ARRAY_TYPE_EXT"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_COLOR_ARRAY_COUNT_EXT"/>
+ <enum name="GL_INDEX_ARRAY_TYPE_EXT"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_INDEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER_EXT"/>
+ <enum name="GL_COLOR_ARRAY_POINTER_EXT"/>
+ <enum name="GL_INDEX_ARRAY_POINTER_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
+ <command name="glArrayElementEXT"/>
+ <command name="glColorPointerEXT"/>
+ <command name="glDrawArraysEXT"/>
+ <command name="glEdgeFlagPointerEXT"/>
+ <command name="glGetPointervEXT"/>
+ <command name="glIndexPointerEXT"/>
+ <command name="glNormalPointerEXT"/>
+ <command name="glTexCoordPointerEXT"/>
+ <command name="glVertexPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_array_bgra" supported="gl">
+ <require>
+ <enum name="GL_BGRA"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_attrib_64bit" supported="gl">
+ <require>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_DOUBLE_VEC2_EXT"/>
+ <enum name="GL_DOUBLE_VEC3_EXT"/>
+ <enum name="GL_DOUBLE_VEC4_EXT"/>
+ <enum name="GL_DOUBLE_MAT2_EXT"/>
+ <enum name="GL_DOUBLE_MAT3_EXT"/>
+ <enum name="GL_DOUBLE_MAT4_EXT"/>
+ <enum name="GL_DOUBLE_MAT2x3_EXT"/>
+ <enum name="GL_DOUBLE_MAT2x4_EXT"/>
+ <enum name="GL_DOUBLE_MAT3x2_EXT"/>
+ <enum name="GL_DOUBLE_MAT3x4_EXT"/>
+ <enum name="GL_DOUBLE_MAT4x2_EXT"/>
+ <enum name="GL_DOUBLE_MAT4x3_EXT"/>
+ <command name="glVertexAttribL1dEXT"/>
+ <command name="glVertexAttribL2dEXT"/>
+ <command name="glVertexAttribL3dEXT"/>
+ <command name="glVertexAttribL4dEXT"/>
+ <command name="glVertexAttribL1dvEXT"/>
+ <command name="glVertexAttribL2dvEXT"/>
+ <command name="glVertexAttribL3dvEXT"/>
+ <command name="glVertexAttribL4dvEXT"/>
+ <command name="glVertexAttribLPointerEXT"/>
+ <command name="glGetVertexAttribLdvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_shader" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_SHADER_EXT"/>
+ <enum name="GL_VERTEX_SHADER_BINDING_EXT"/>
+ <enum name="GL_OP_INDEX_EXT"/>
+ <enum name="GL_OP_NEGATE_EXT"/>
+ <enum name="GL_OP_DOT3_EXT"/>
+ <enum name="GL_OP_DOT4_EXT"/>
+ <enum name="GL_OP_MUL_EXT"/>
+ <enum name="GL_OP_ADD_EXT"/>
+ <enum name="GL_OP_MADD_EXT"/>
+ <enum name="GL_OP_FRAC_EXT"/>
+ <enum name="GL_OP_MAX_EXT"/>
+ <enum name="GL_OP_MIN_EXT"/>
+ <enum name="GL_OP_SET_GE_EXT"/>
+ <enum name="GL_OP_SET_LT_EXT"/>
+ <enum name="GL_OP_CLAMP_EXT"/>
+ <enum name="GL_OP_FLOOR_EXT"/>
+ <enum name="GL_OP_ROUND_EXT"/>
+ <enum name="GL_OP_EXP_BASE_2_EXT"/>
+ <enum name="GL_OP_LOG_BASE_2_EXT"/>
+ <enum name="GL_OP_POWER_EXT"/>
+ <enum name="GL_OP_RECIP_EXT"/>
+ <enum name="GL_OP_RECIP_SQRT_EXT"/>
+ <enum name="GL_OP_SUB_EXT"/>
+ <enum name="GL_OP_CROSS_PRODUCT_EXT"/>
+ <enum name="GL_OP_MULTIPLY_MATRIX_EXT"/>
+ <enum name="GL_OP_MOV_EXT"/>
+ <enum name="GL_OUTPUT_VERTEX_EXT"/>
+ <enum name="GL_OUTPUT_COLOR0_EXT"/>
+ <enum name="GL_OUTPUT_COLOR1_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD0_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD1_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD2_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD3_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD4_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD5_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD6_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD7_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD8_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD9_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD10_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD11_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD12_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD13_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD14_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD15_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD16_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD17_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD18_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD19_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD20_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD21_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD22_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD23_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD24_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD25_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD26_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD27_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD28_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD29_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD30_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD31_EXT"/>
+ <enum name="GL_OUTPUT_FOG_EXT"/>
+ <enum name="GL_SCALAR_EXT"/>
+ <enum name="GL_VECTOR_EXT"/>
+ <enum name="GL_MATRIX_EXT"/>
+ <enum name="GL_VARIANT_EXT"/>
+ <enum name="GL_INVARIANT_EXT"/>
+ <enum name="GL_LOCAL_CONSTANT_EXT"/>
+ <enum name="GL_LOCAL_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_OPTIMIZED_EXT"/>
+ <enum name="GL_X_EXT"/>
+ <enum name="GL_Y_EXT"/>
+ <enum name="GL_Z_EXT"/>
+ <enum name="GL_W_EXT"/>
+ <enum name="GL_NEGATIVE_X_EXT"/>
+ <enum name="GL_NEGATIVE_Y_EXT"/>
+ <enum name="GL_NEGATIVE_Z_EXT"/>
+ <enum name="GL_NEGATIVE_W_EXT"/>
+ <enum name="GL_ZERO_EXT"/>
+ <enum name="GL_ONE_EXT"/>
+ <enum name="GL_NEGATIVE_ONE_EXT"/>
+ <enum name="GL_NORMALIZED_RANGE_EXT"/>
+ <enum name="GL_FULL_RANGE_EXT"/>
+ <enum name="GL_CURRENT_VERTEX_EXT"/>
+ <enum name="GL_MVP_MATRIX_EXT"/>
+ <enum name="GL_VARIANT_VALUE_EXT"/>
+ <enum name="GL_VARIANT_DATATYPE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_TYPE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_POINTER_EXT"/>
+ <enum name="GL_INVARIANT_VALUE_EXT"/>
+ <enum name="GL_INVARIANT_DATATYPE_EXT"/>
+ <enum name="GL_LOCAL_CONSTANT_VALUE_EXT"/>
+ <enum name="GL_LOCAL_CONSTANT_DATATYPE_EXT"/>
+ <command name="glBeginVertexShaderEXT"/>
+ <command name="glEndVertexShaderEXT"/>
+ <command name="glBindVertexShaderEXT"/>
+ <command name="glGenVertexShadersEXT"/>
+ <command name="glDeleteVertexShaderEXT"/>
+ <command name="glShaderOp1EXT"/>
+ <command name="glShaderOp2EXT"/>
+ <command name="glShaderOp3EXT"/>
+ <command name="glSwizzleEXT"/>
+ <command name="glWriteMaskEXT"/>
+ <command name="glInsertComponentEXT"/>
+ <command name="glExtractComponentEXT"/>
+ <command name="glGenSymbolsEXT"/>
+ <command name="glSetInvariantEXT"/>
+ <command name="glSetLocalConstantEXT"/>
+ <command name="glVariantbvEXT"/>
+ <command name="glVariantsvEXT"/>
+ <command name="glVariantivEXT"/>
+ <command name="glVariantfvEXT"/>
+ <command name="glVariantdvEXT"/>
+ <command name="glVariantubvEXT"/>
+ <command name="glVariantusvEXT"/>
+ <command name="glVariantuivEXT"/>
+ <command name="glVariantPointerEXT"/>
+ <command name="glEnableVariantClientStateEXT"/>
+ <command name="glDisableVariantClientStateEXT"/>
+ <command name="glBindLightParameterEXT"/>
+ <command name="glBindMaterialParameterEXT"/>
+ <command name="glBindTexGenParameterEXT"/>
+ <command name="glBindTextureUnitParameterEXT"/>
+ <command name="glBindParameterEXT"/>
+ <command name="glIsVariantEnabledEXT"/>
+ <command name="glGetVariantBooleanvEXT"/>
+ <command name="glGetVariantIntegervEXT"/>
+ <command name="glGetVariantFloatvEXT"/>
+ <command name="glGetVariantPointervEXT"/>
+ <command name="glGetInvariantBooleanvEXT"/>
+ <command name="glGetInvariantIntegervEXT"/>
+ <command name="glGetInvariantFloatvEXT"/>
+ <command name="glGetLocalConstantBooleanvEXT"/>
+ <command name="glGetLocalConstantIntegervEXT"/>
+ <command name="glGetLocalConstantFloatvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_weighting" supported="gl">
+ <require>
+ <enum name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+ <enum name="GL_MODELVIEW1_STACK_DEPTH_EXT"/>
+ <enum name="GL_MODELVIEW0_MATRIX_EXT"/>
+ <enum name="GL_MODELVIEW1_MATRIX_EXT"/>
+ <enum name="GL_VERTEX_WEIGHTING_EXT"/>
+ <enum name="GL_MODELVIEW0_EXT"/>
+ <enum name="GL_MODELVIEW1_EXT"/>
+ <enum name="GL_CURRENT_VERTEX_WEIGHT_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT"/>
+ <command name="glVertexWeightfEXT"/>
+ <command name="glVertexWeightfvEXT"/>
+ <command name="glVertexWeightPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_x11_sync_object" supported="gl">
+ <require>
+ <enum name="GL_SYNC_X11_FENCE_EXT"/>
+ <command name="glImportSyncEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_FJ_shader_binary_GCCSO" supported="gles2">
+ <require>
+ <enum name="GL_GCCSO_SHADER_BINARY_FJ"/>
+ </require>
+ </extension>
+ <extension name="GL_GREMEDY_frame_terminator" supported="gl">
+ <require>
+ <command name="glFrameTerminatorGREMEDY"/>
+ </require>
+ </extension>
+ <extension name="GL_GREMEDY_string_marker" supported="gl">
+ <require>
+ <command name="glStringMarkerGREMEDY"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_convolution_border_modes" supported="gl">
+ <require>
+ <enum name="GL_IGNORE_BORDER_HP"/>
+ <enum name="GL_CONSTANT_BORDER_HP"/>
+ <enum name="GL_REPLICATE_BORDER_HP"/>
+ <enum name="GL_CONVOLUTION_BORDER_COLOR_HP"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_image_transform" supported="gl">
+ <require>
+ <enum name="GL_IMAGE_SCALE_X_HP"/>
+ <enum name="GL_IMAGE_SCALE_Y_HP"/>
+ <enum name="GL_IMAGE_TRANSLATE_X_HP"/>
+ <enum name="GL_IMAGE_TRANSLATE_Y_HP"/>
+ <enum name="GL_IMAGE_ROTATE_ANGLE_HP"/>
+ <enum name="GL_IMAGE_ROTATE_ORIGIN_X_HP"/>
+ <enum name="GL_IMAGE_ROTATE_ORIGIN_Y_HP"/>
+ <enum name="GL_IMAGE_MAG_FILTER_HP"/>
+ <enum name="GL_IMAGE_MIN_FILTER_HP"/>
+ <enum name="GL_IMAGE_CUBIC_WEIGHT_HP"/>
+ <enum name="GL_CUBIC_HP"/>
+ <enum name="GL_AVERAGE_HP"/>
+ <enum name="GL_IMAGE_TRANSFORM_2D_HP"/>
+ <enum name="GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <enum name="GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <command name="glImageTransformParameteriHP"/>
+ <command name="glImageTransformParameterfHP"/>
+ <command name="glImageTransformParameterivHP"/>
+ <command name="glImageTransformParameterfvHP"/>
+ <command name="glGetImageTransformParameterivHP"/>
+ <command name="glGetImageTransformParameterfvHP"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_occlusion_test" supported="gl">
+ <require>
+ <enum name="GL_OCCLUSION_TEST_HP"/>
+ <enum name="GL_OCCLUSION_TEST_RESULT_HP"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_texture_lighting" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_LIGHTING_MODE_HP"/>
+ <enum name="GL_TEXTURE_POST_SPECULAR_HP"/>
+ <enum name="GL_TEXTURE_PRE_SPECULAR_HP"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_cull_vertex" supported="gl">
+ <require>
+ <enum name="GL_CULL_VERTEX_IBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_multimode_draw_arrays" supported="gl">
+ <require>
+ <command name="glMultiModeDrawArraysIBM"/>
+ <command name="glMultiModeDrawElementsIBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_rasterpos_clip" supported="gl">
+ <require>
+ <enum name="GL_RASTER_POSITION_UNCLIPPED_IBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_static_data" supported="gl">
+ <require>
+ <enum name="GL_ALL_STATIC_DATA_IBM"/>
+ <enum name="GL_STATIC_VERTEX_ARRAY_IBM"/>
+ <command name="glFlushStaticDataIBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_texture_mirrored_repeat" supported="gl">
+ <require>
+ <enum name="GL_MIRRORED_REPEAT_IBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_vertex_array_lists" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_LIST_IBM"/>
+ <enum name="GL_NORMAL_ARRAY_LIST_IBM"/>
+ <enum name="GL_COLOR_ARRAY_LIST_IBM"/>
+ <enum name="GL_INDEX_ARRAY_LIST_IBM"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_LIST_IBM"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_LIST_IBM"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_LIST_IBM"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_LIST_IBM"/>
+ <enum name="GL_VERTEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_NORMAL_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_INDEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ <command name="glColorPointerListIBM"/>
+ <command name="glSecondaryColorPointerListIBM"/>
+ <command name="glEdgeFlagPointerListIBM"/>
+ <command name="glFogCoordPointerListIBM"/>
+ <command name="glIndexPointerListIBM"/>
+ <command name="glNormalPointerListIBM"/>
+ <command name="glTexCoordPointerListIBM"/>
+ <command name="glVertexPointerListIBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_multisampled_render_to_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_IMG"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG"/>
+ <enum name="GL_MAX_SAMPLES_IMG"/>
+ <enum name="GL_TEXTURE_SAMPLES_IMG"/>
+ <command name="glRenderbufferStorageMultisampleIMG"/>
+ <command name="glFramebufferTexture2DMultisampleIMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_SGX_PROGRAM_BINARY_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_read_format" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_IMG"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_SGX_BINARY_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_texture_compression_pvrtc" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"/>
+ <enum name="GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"/>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"/>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_texture_compression_pvrtc2" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG"/>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_texture_env_enhanced_fixed_function" supported="gles1">
+ <require>
+ <enum name="GL_MODULATE_COLOR_IMG"/>
+ <enum name="GL_RECIP_ADD_SIGNED_ALPHA_IMG"/>
+ <enum name="GL_TEXTURE_ALPHA_MODULATE_IMG"/>
+ <enum name="GL_FACTOR_ALPHA_MODULATE_IMG"/>
+ <enum name="GL_FRAGMENT_ALPHA_MODULATE_IMG"/>
+ <enum name="GL_ADD_BLEND_IMG"/>
+ <enum name="GL_DOT3_RGBA_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_user_clip_plane" supported="gles1">
+ <require>
+ <enum name="GL_CLIP_PLANE0_IMG"/>
+ <enum name="GL_CLIP_PLANE1_IMG"/>
+ <enum name="GL_CLIP_PLANE2_IMG"/>
+ <enum name="GL_CLIP_PLANE3_IMG"/>
+ <enum name="GL_CLIP_PLANE4_IMG"/>
+ <enum name="GL_CLIP_PLANE5_IMG"/>
+ <enum name="GL_MAX_CLIP_PLANES_IMG"/>
+ <command name="glClipPlanefIMG"/>
+ <command name="glClipPlanexIMG"/>
+ </require>
+ </extension>
+ <extension name="GL_INGR_blend_func_separate" supported="gl">
+ <require>
+ <command name="glBlendFuncSeparateINGR"/>
+ </require>
+ </extension>
+ <extension name="GL_INGR_color_clamp" supported="gl">
+ <require>
+ <enum name="GL_RED_MIN_CLAMP_INGR"/>
+ <enum name="GL_GREEN_MIN_CLAMP_INGR"/>
+ <enum name="GL_BLUE_MIN_CLAMP_INGR"/>
+ <enum name="GL_ALPHA_MIN_CLAMP_INGR"/>
+ <enum name="GL_RED_MAX_CLAMP_INGR"/>
+ <enum name="GL_GREEN_MAX_CLAMP_INGR"/>
+ <enum name="GL_BLUE_MAX_CLAMP_INGR"/>
+ <enum name="GL_ALPHA_MAX_CLAMP_INGR"/>
+ </require>
+ </extension>
+ <extension name="GL_INGR_interlace_read" supported="gl">
+ <require>
+ <enum name="GL_INTERLACE_READ_INGR"/>
+ </require>
+ </extension>
+ <extension name="GL_INTEL_fragment_shader_ordering" supported="gl"/>
+ <extension name="GL_INTEL_map_texture" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MEMORY_LAYOUT_INTEL"/>
+ <enum name="GL_LAYOUT_DEFAULT_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+ <command name="glSyncTextureINTEL"/>
+ <command name="glUnmapTexture2DINTEL"/>
+ <command name="glMapTexture2DINTEL"/>
+ </require>
+ </extension>
+ <extension name="GL_INTEL_parallel_arrays" supported="gl">
+ <require>
+ <enum name="GL_PARALLEL_ARRAYS_INTEL"/>
+ <enum name="GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum name="GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum name="GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <command name="glVertexPointervINTEL"/>
+ <command name="glNormalPointervINTEL"/>
+ <command name="glColorPointervINTEL"/>
+ <command name="glTexCoordPointervINTEL"/>
+ </require>
+ </extension>
+ <extension name="GL_INTEL_performance_query" supported="gl|gles2">
+ <require>
+ <enum name="GL_PERFQUERY_SINGLE_CONTEXT_INTEL"/>
+ <enum name="GL_PERFQUERY_GLOBAL_CONTEXT_INTEL"/>
+ <enum name="GL_PERFQUERY_WAIT_INTEL"/>
+ <enum name="GL_PERFQUERY_FLUSH_INTEL"/>
+ <enum name="GL_PERFQUERY_DONOT_FLUSH_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_EVENT_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_RAW_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL"/>
+ <enum name="GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL"/>
+ <enum name="GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL"/>
+ <enum name="GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL"/>
+ <command name="glBeginPerfQueryINTEL"/>
+ <command name="glCreatePerfQueryINTEL"/>
+ <command name="glDeletePerfQueryINTEL"/>
+ <command name="glEndPerfQueryINTEL"/>
+ <command name="glGetFirstPerfQueryIdINTEL"/>
+ <command name="glGetNextPerfQueryIdINTEL"/>
+ <command name="glGetPerfCounterInfoINTEL"/>
+ <command name="glGetPerfQueryDataINTEL"/>
+ <command name="glGetPerfQueryIdByNameINTEL"/>
+ <command name="glGetPerfQueryInfoINTEL"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_blend_equation_advanced" supported="gl|gles2">
+ <require>
+ <command name="glBlendBarrierKHR"/>
+ <enum name="GL_MULTIPLY_KHR"/>
+ <enum name="GL_SCREEN_KHR"/>
+ <enum name="GL_OVERLAY_KHR"/>
+ <enum name="GL_DARKEN_KHR"/>
+ <enum name="GL_LIGHTEN_KHR"/>
+ <enum name="GL_COLORDODGE_KHR"/>
+ <enum name="GL_COLORBURN_KHR"/>
+ <enum name="GL_HARDLIGHT_KHR"/>
+ <enum name="GL_SOFTLIGHT_KHR"/>
+ <enum name="GL_DIFFERENCE_KHR"/>
+ <enum name="GL_EXCLUSION_KHR"/>
+ <enum name="GL_HSL_HUE_KHR"/>
+ <enum name="GL_HSL_SATURATION_KHR"/>
+ <enum name="GL_HSL_COLOR_KHR"/>
+ <enum name="GL_HSL_LUMINOSITY_KHR"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_blend_equation_advanced_coherent" supported="gl|gles2">
+ <require comment="Otherwise identical to GL_KHR_blend_equation_advanced, just different semantic behavior">
+ <enum name="GL_BLEND_ADVANCED_COHERENT_KHR"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_context_flush_control" supported="gl|glcore|gles2">
+ <require api="gl" comment="KHR extensions *mandate* suffixes for ES, unlike for GL">
+ <enum name="GL_CONTEXT_RELEASE_BEHAVIOR"/>
+ <enum name="GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH"/>
+ <enum name="GL_NONE"/>
+ </require>
+ <require api="gles2">
+ <enum name="GL_CONTEXT_RELEASE_BEHAVIOR_KHR"/>
+ <enum name="GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR"/>
+ <enum name="GL_NONE"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_debug" supported="gl|glcore|gles2">
+ <require api="gl" comment="KHR extensions *mandate* suffixes for ES, unlike for GL">
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+ <enum name="GL_DEBUG_SOURCE_API"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER"/>
+ <enum name="GL_DEBUG_TYPE_ERROR"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE"/>
+ <enum name="GL_DEBUG_TYPE_OTHER"/>
+ <enum name="GL_DEBUG_TYPE_MARKER"/>
+ <enum name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+ <enum name="GL_DEBUG_TYPE_POP_GROUP"/>
+ <enum name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+ <enum name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_BUFFER"/>
+ <enum name="GL_SHADER"/>
+ <enum name="GL_PROGRAM"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_QUERY"/>
+ <enum name="GL_SAMPLER"/>
+ <enum name="GL_MAX_LABEL_LENGTH"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW"/>
+ <enum name="GL_DEBUG_OUTPUT"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <command name="glDebugMessageControl"/>
+ <command name="glDebugMessageInsert"/>
+ <command name="glDebugMessageCallback"/>
+ <command name="glGetDebugMessageLog"/>
+ <command name="glPushDebugGroup"/>
+ <command name="glPopDebugGroup"/>
+ <command name="glObjectLabel"/>
+ <command name="glGetObjectLabel"/>
+ <command name="glObjectPtrLabel"/>
+ <command name="glGetObjectPtrLabel"/>
+ <command name="glGetPointerv"/>
+ </require>
+ <require api="gles2">
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION_KHR"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_API_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER_KHR"/>
+ <enum name="GL_DEBUG_TYPE_ERROR_KHR"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY_KHR"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE_KHR"/>
+ <enum name="GL_DEBUG_TYPE_OTHER_KHR"/>
+ <enum name="GL_DEBUG_TYPE_MARKER_KHR"/>
+ <enum name="GL_DEBUG_TYPE_PUSH_GROUP_KHR"/>
+ <enum name="GL_DEBUG_TYPE_POP_GROUP_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_NOTIFICATION_KHR"/>
+ <enum name="GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum name="GL_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum name="GL_BUFFER_KHR"/>
+ <enum name="GL_SHADER_KHR"/>
+ <enum name="GL_PROGRAM_KHR"/>
+ <enum name="GL_VERTEX_ARRAY_KHR"/>
+ <enum name="GL_QUERY_KHR"/>
+ <enum name="GL_SAMPLER_KHR"/>
+ <enum name="GL_MAX_LABEL_LENGTH_KHR"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH_KHR"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW_KHR"/>
+ <enum name="GL_DEBUG_OUTPUT_KHR"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
+ <enum name="GL_STACK_OVERFLOW_KHR"/>
+ <enum name="GL_STACK_UNDERFLOW_KHR"/>
+ <command name="glDebugMessageControlKHR"/>
+ <command name="glDebugMessageInsertKHR"/>
+ <command name="glDebugMessageCallbackKHR"/>
+ <command name="glGetDebugMessageLogKHR"/>
+ <command name="glPushDebugGroupKHR"/>
+ <command name="glPopDebugGroupKHR"/>
+ <command name="glObjectLabelKHR"/>
+ <command name="glGetObjectLabelKHR"/>
+ <command name="glObjectPtrLabelKHR"/>
+ <command name="glGetObjectPtrLabelKHR"/>
+ <command name="glGetPointervKHR"/>
+ </require>
+ <require api="gl" comment="Could benefit from api/profile attributes at enum tag level">
+ <enum name="GL_PROGRAM_PIPELINE"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_DISPLAY_LIST"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_robust_buffer_access_behavior" supported="gl|glcore|gles2"/>
+ <extension name="GL_KHR_robustness" supported="gl|glcore|gles2">
+ <require api="gl" comment="KHR extensions *mandate* suffixes for ES, unlike for GL">
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_CONTEXT_ROBUST_ACCESS"/>
+ <enum name="GL_LOSE_CONTEXT_ON_RESET"/>
+ <enum name="GL_GUILTY_CONTEXT_RESET"/>
+ <enum name="GL_INNOCENT_CONTEXT_RESET"/>
+ <enum name="GL_UNKNOWN_CONTEXT_RESET"/>
+ <enum name="GL_RESET_NOTIFICATION_STRATEGY"/>
+ <enum name="GL_NO_RESET_NOTIFICATION"/>
+ <enum name="GL_CONTEXT_LOST"/>
+ <command name="glGetGraphicsResetStatus"/>
+ <command name="glReadnPixels"/>
+ <command name="glGetnUniformfv"/>
+ <command name="glGetnUniformiv"/>
+ <command name="glGetnUniformuiv"/>
+ </require>
+ <require api="gles2">
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_CONTEXT_ROBUST_ACCESS_KHR"/>
+ <enum name="GL_LOSE_CONTEXT_ON_RESET_KHR"/>
+ <enum name="GL_GUILTY_CONTEXT_RESET_KHR"/>
+ <enum name="GL_INNOCENT_CONTEXT_RESET_KHR"/>
+ <enum name="GL_UNKNOWN_CONTEXT_RESET_KHR"/>
+ <enum name="GL_RESET_NOTIFICATION_STRATEGY_KHR"/>
+ <enum name="GL_NO_RESET_NOTIFICATION_KHR"/>
+ <enum name="GL_CONTEXT_LOST_KHR"/>
+ <command name="glGetGraphicsResetStatusKHR"/>
+ <command name="glReadnPixelsKHR"/>
+ <command name="glGetnUniformfvKHR"/>
+ <command name="glGetnUniformivKHR"/>
+ <command name="glGetnUniformuivKHR"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_texture_compression_astc_hdr" supported="gl|glcore|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_texture_compression_astc_ldr" supported="gl|glcore|gles2" comment="API is identical to GL_KHR_texture_compression_astc_hdr extension">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ </require>
+ </extension>
+ <extension name="GL_MESAX_texture_stack" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_1D_STACK_MESAX"/>
+ <enum name="GL_TEXTURE_2D_STACK_MESAX"/>
+ <enum name="GL_PROXY_TEXTURE_1D_STACK_MESAX"/>
+ <enum name="GL_PROXY_TEXTURE_2D_STACK_MESAX"/>
+ <enum name="GL_TEXTURE_1D_STACK_BINDING_MESAX"/>
+ <enum name="GL_TEXTURE_2D_STACK_BINDING_MESAX"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_pack_invert" supported="gl">
+ <require>
+ <enum name="GL_PACK_INVERT_MESA"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_resize_buffers" supported="gl">
+ <require>
+ <command name="glResizeBuffersMESA"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_window_pos" supported="gl">
+ <require>
+ <command name="glWindowPos2dMESA"/>
+ <command name="glWindowPos2dvMESA"/>
+ <command name="glWindowPos2fMESA"/>
+ <command name="glWindowPos2fvMESA"/>
+ <command name="glWindowPos2iMESA"/>
+ <command name="glWindowPos2ivMESA"/>
+ <command name="glWindowPos2sMESA"/>
+ <command name="glWindowPos2svMESA"/>
+ <command name="glWindowPos3dMESA"/>
+ <command name="glWindowPos3dvMESA"/>
+ <command name="glWindowPos3fMESA"/>
+ <command name="glWindowPos3fvMESA"/>
+ <command name="glWindowPos3iMESA"/>
+ <command name="glWindowPos3ivMESA"/>
+ <command name="glWindowPos3sMESA"/>
+ <command name="glWindowPos3svMESA"/>
+ <command name="glWindowPos4dMESA"/>
+ <command name="glWindowPos4dvMESA"/>
+ <command name="glWindowPos4fMESA"/>
+ <command name="glWindowPos4fvMESA"/>
+ <command name="glWindowPos4iMESA"/>
+ <command name="glWindowPos4ivMESA"/>
+ <command name="glWindowPos4sMESA"/>
+ <command name="glWindowPos4svMESA"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_ycbcr_texture" supported="gl">
+ <require>
+ <enum name="GL_UNSIGNED_SHORT_8_8_MESA"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_REV_MESA"/>
+ <enum name="GL_YCBCR_MESA"/>
+ </require>
+ </extension>
+ <extension name="GL_NVX_conditional_render" supported="gl">
+ <require>
+ <command name="glBeginConditionalRenderNVX"/>
+ <command name="glEndConditionalRenderNVX"/>
+ </require>
+ </extension>
+ <extension name="GL_NVX_gpu_memory_info" supported="gl">
+ <require>
+ <enum name="GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX"/>
+ <enum name="GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX"/>
+ <enum name="GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX"/>
+ <enum name="GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX"/>
+ <enum name="GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_bindless_multi_draw_indirect" supported="gl">
+ <require>
+ <command name="glMultiDrawArraysIndirectBindlessNV"/>
+ <command name="glMultiDrawElementsIndirectBindlessNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_bindless_multi_draw_indirect_count" supported="gl">
+ <require>
+ <command name="glMultiDrawArraysIndirectBindlessCountNV"/>
+ <command name="glMultiDrawElementsIndirectBindlessCountNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_bindless_texture" supported="gl">
+ <require>
+ <command name="glGetTextureHandleNV"/>
+ <command name="glGetTextureSamplerHandleNV"/>
+ <command name="glMakeTextureHandleResidentNV"/>
+ <command name="glMakeTextureHandleNonResidentNV"/>
+ <command name="glGetImageHandleNV"/>
+ <command name="glMakeImageHandleResidentNV"/>
+ <command name="glMakeImageHandleNonResidentNV"/>
+ <command name="glUniformHandleui64NV"/>
+ <command name="glUniformHandleui64vNV"/>
+ <command name="glProgramUniformHandleui64NV"/>
+ <command name="glProgramUniformHandleui64vNV"/>
+ <command name="glIsTextureHandleResidentNV"/>
+ <command name="glIsImageHandleResidentNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_blend_equation_advanced" supported="gl|gles2">
+ <require>
+ <enum name="GL_BLEND_OVERLAP_NV"/>
+ <enum name="GL_BLEND_PREMULTIPLIED_SRC_NV"/>
+ <enum name="GL_BLUE_NV"/>
+ <enum name="GL_COLORBURN_NV"/>
+ <enum name="GL_COLORDODGE_NV"/>
+ <enum name="GL_CONJOINT_NV"/>
+ <enum name="GL_CONTRAST_NV"/>
+ <enum name="GL_DARKEN_NV"/>
+ <enum name="GL_DIFFERENCE_NV"/>
+ <enum name="GL_DISJOINT_NV"/>
+ <enum name="GL_DST_ATOP_NV"/>
+ <enum name="GL_DST_IN_NV"/>
+ <enum name="GL_DST_NV"/>
+ <enum name="GL_DST_OUT_NV"/>
+ <enum name="GL_DST_OVER_NV"/>
+ <enum name="GL_EXCLUSION_NV"/>
+ <enum name="GL_GREEN_NV"/>
+ <enum name="GL_HARDLIGHT_NV"/>
+ <enum name="GL_HARDMIX_NV"/>
+ <enum name="GL_HSL_COLOR_NV"/>
+ <enum name="GL_HSL_HUE_NV"/>
+ <enum name="GL_HSL_LUMINOSITY_NV"/>
+ <enum name="GL_HSL_SATURATION_NV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_INVERT_OVG_NV"/>
+ <enum name="GL_INVERT_RGB_NV"/>
+ <enum name="GL_LIGHTEN_NV"/>
+ <enum name="GL_LINEARBURN_NV"/>
+ <enum name="GL_LINEARDODGE_NV"/>
+ <enum name="GL_LINEARLIGHT_NV"/>
+ <enum name="GL_MINUS_CLAMPED_NV"/>
+ <enum name="GL_MINUS_NV"/>
+ <enum name="GL_MULTIPLY_NV"/>
+ <enum name="GL_OVERLAY_NV"/>
+ <enum name="GL_PINLIGHT_NV"/>
+ <enum name="GL_PLUS_CLAMPED_ALPHA_NV"/>
+ <enum name="GL_PLUS_CLAMPED_NV"/>
+ <enum name="GL_PLUS_DARKER_NV"/>
+ <enum name="GL_PLUS_NV"/>
+ <enum name="GL_RED_NV"/>
+ <enum name="GL_SCREEN_NV"/>
+ <enum name="GL_SOFTLIGHT_NV"/>
+ <enum name="GL_SRC_ATOP_NV"/>
+ <enum name="GL_SRC_IN_NV"/>
+ <enum name="GL_SRC_NV"/>
+ <enum name="GL_SRC_OUT_NV"/>
+ <enum name="GL_SRC_OVER_NV"/>
+ <enum name="GL_UNCORRELATED_NV"/>
+ <enum name="GL_VIVIDLIGHT_NV"/>
+ <enum name="GL_XOR_NV"/>
+ <enum name="GL_ZERO"/>
+ <command name="glBlendParameteriNV"/>
+ <command name="glBlendBarrierNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_blend_equation_advanced_coherent" supported="gl|gles2">
+ <require comment="Otherwise identical to GL_NV_blend_equation_advanced, just different semantic behavior">
+ <enum name="GL_BLEND_ADVANCED_COHERENT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_blend_square" supported="gl"/>
+ <extension name="GL_NV_compute_program5" supported="gl">
+ <require>
+ <enum name="GL_COMPUTE_PROGRAM_NV"/>
+ <enum name="GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_conditional_render" supported="gl">
+ <require>
+ <enum name="GL_QUERY_WAIT_NV"/>
+ <enum name="GL_QUERY_NO_WAIT_NV"/>
+ <enum name="GL_QUERY_BY_REGION_WAIT_NV"/>
+ <enum name="GL_QUERY_BY_REGION_NO_WAIT_NV"/>
+ <command name="glBeginConditionalRenderNV"/>
+ <command name="glEndConditionalRenderNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_copy_buffer" supported="gles2">
+ <require>
+ <enum name="GL_COPY_READ_BUFFER_NV"/>
+ <enum name="GL_COPY_WRITE_BUFFER_NV"/>
+ <command name="glCopyBufferSubDataNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_copy_depth_to_color" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_TO_RGBA_NV"/>
+ <enum name="GL_DEPTH_STENCIL_TO_BGRA_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_copy_image" supported="gl">
+ <require>
+ <command name="glCopyImageSubDataNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_coverage_sample" supported="gles2">
+ <require>
+ <enum name="GL_COVERAGE_COMPONENT_NV"/>
+ <enum name="GL_COVERAGE_COMPONENT4_NV"/>
+ <enum name="GL_COVERAGE_ATTACHMENT_NV"/>
+ <enum name="GL_COVERAGE_BUFFERS_NV"/>
+ <enum name="GL_COVERAGE_SAMPLES_NV"/>
+ <enum name="GL_COVERAGE_ALL_FRAGMENTS_NV"/>
+ <enum name="GL_COVERAGE_EDGE_FRAGMENTS_NV"/>
+ <enum name="GL_COVERAGE_AUTOMATIC_NV"/>
+ <enum name="GL_COVERAGE_BUFFER_BIT_NV"/>
+ <command name="glCoverageMaskNV"/>
+ <command name="glCoverageOperationNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_deep_texture3D" supported="gl">
+ <require>
+ <enum name="GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV"/>
+ <enum name="GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_depth_buffer_float" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT32F_NV"/>
+ <enum name="GL_DEPTH32F_STENCIL8_NV"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV"/>
+ <enum name="GL_DEPTH_BUFFER_FLOAT_MODE_NV"/>
+ <command name="glDepthRangedNV"/>
+ <command name="glClearDepthdNV"/>
+ <command name="glDepthBoundsdNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_depth_clamp" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_CLAMP_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_depth_nonlinear" supported="gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT16_NONLINEAR_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_draw_buffers" supported="gles2">
+ <require>
+ <enum name="GL_MAX_DRAW_BUFFERS_NV"/>
+ <enum name="GL_DRAW_BUFFER0_NV"/>
+ <enum name="GL_DRAW_BUFFER1_NV"/>
+ <enum name="GL_DRAW_BUFFER2_NV"/>
+ <enum name="GL_DRAW_BUFFER3_NV"/>
+ <enum name="GL_DRAW_BUFFER4_NV"/>
+ <enum name="GL_DRAW_BUFFER5_NV"/>
+ <enum name="GL_DRAW_BUFFER6_NV"/>
+ <enum name="GL_DRAW_BUFFER7_NV"/>
+ <enum name="GL_DRAW_BUFFER8_NV"/>
+ <enum name="GL_DRAW_BUFFER9_NV"/>
+ <enum name="GL_DRAW_BUFFER10_NV"/>
+ <enum name="GL_DRAW_BUFFER11_NV"/>
+ <enum name="GL_DRAW_BUFFER12_NV"/>
+ <enum name="GL_DRAW_BUFFER13_NV"/>
+ <enum name="GL_DRAW_BUFFER14_NV"/>
+ <enum name="GL_DRAW_BUFFER15_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT0_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT1_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT2_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT3_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT4_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT5_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT6_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT7_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT8_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT9_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT10_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT11_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT12_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT13_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT14_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT15_NV"/>
+ <command name="glDrawBuffersNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_draw_instanced" supported="gles2">
+ <require>
+ <command name="glDrawArraysInstancedNV"/>
+ <command name="glDrawElementsInstancedNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_draw_texture" supported="gl">
+ <require>
+ <command name="glDrawTextureNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_evaluators" supported="gl">
+ <require>
+ <enum name="GL_EVAL_2D_NV"/>
+ <enum name="GL_EVAL_TRIANGULAR_2D_NV"/>
+ <enum name="GL_MAP_TESSELLATION_NV"/>
+ <enum name="GL_MAP_ATTRIB_U_ORDER_NV"/>
+ <enum name="GL_MAP_ATTRIB_V_ORDER_NV"/>
+ <enum name="GL_EVAL_FRACTIONAL_TESSELLATION_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB0_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB1_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB2_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB3_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB4_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB5_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB6_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB7_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB8_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB9_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB10_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB11_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB12_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB13_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB14_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB15_NV"/>
+ <enum name="GL_MAX_MAP_TESSELLATION_NV"/>
+ <enum name="GL_MAX_RATIONAL_EVAL_ORDER_NV"/>
+ <command name="glMapControlPointsNV"/>
+ <command name="glMapParameterivNV"/>
+ <command name="glMapParameterfvNV"/>
+ <command name="glGetMapControlPointsNV"/>
+ <command name="glGetMapParameterivNV"/>
+ <command name="glGetMapParameterfvNV"/>
+ <command name="glGetMapAttribParameterivNV"/>
+ <command name="glGetMapAttribParameterfvNV"/>
+ <command name="glEvalMapsNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_explicit_attrib_location" supported="gles2"/>
+ <extension name="GL_NV_explicit_multisample" supported="gl">
+ <require>
+ <enum name="GL_SAMPLE_POSITION_NV"/>
+ <enum name="GL_SAMPLE_MASK_NV"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_NV"/>
+ <enum name="GL_TEXTURE_BINDING_RENDERBUFFER_NV"/>
+ <enum name="GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV"/>
+ <enum name="GL_TEXTURE_RENDERBUFFER_NV"/>
+ <enum name="GL_SAMPLER_RENDERBUFFER_NV"/>
+ <enum name="GL_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS_NV"/>
+ <command name="glGetMultisamplefvNV"/>
+ <command name="glSampleMaskIndexedNV"/>
+ <command name="glTexRenderbufferNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fbo_color_attachments" supported="gles2">
+ <require>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT0_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT1_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT2_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT3_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT4_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT5_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT6_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT7_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT8_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT9_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT10_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT11_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT12_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT13_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT14_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT15_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fence" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_ALL_COMPLETED_NV"/>
+ <enum name="GL_FENCE_STATUS_NV"/>
+ <enum name="GL_FENCE_CONDITION_NV"/>
+ <command name="glDeleteFencesNV"/>
+ <command name="glGenFencesNV"/>
+ <command name="glIsFenceNV"/>
+ <command name="glTestFenceNV"/>
+ <command name="glGetFenceivNV"/>
+ <command name="glFinishFenceNV"/>
+ <command name="glSetFenceNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_float_buffer" supported="gl">
+ <require>
+ <enum name="GL_FLOAT_R_NV"/>
+ <enum name="GL_FLOAT_RG_NV"/>
+ <enum name="GL_FLOAT_RGB_NV"/>
+ <enum name="GL_FLOAT_RGBA_NV"/>
+ <enum name="GL_FLOAT_R16_NV"/>
+ <enum name="GL_FLOAT_R32_NV"/>
+ <enum name="GL_FLOAT_RG16_NV"/>
+ <enum name="GL_FLOAT_RG32_NV"/>
+ <enum name="GL_FLOAT_RGB16_NV"/>
+ <enum name="GL_FLOAT_RGB32_NV"/>
+ <enum name="GL_FLOAT_RGBA16_NV"/>
+ <enum name="GL_FLOAT_RGBA32_NV"/>
+ <enum name="GL_TEXTURE_FLOAT_COMPONENTS_NV"/>
+ <enum name="GL_FLOAT_CLEAR_COLOR_VALUE_NV"/>
+ <enum name="GL_FLOAT_RGBA_MODE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fog_distance" supported="gl">
+ <require>
+ <enum name="GL_FOG_DISTANCE_MODE_NV"/>
+ <enum name="GL_EYE_RADIAL_NV"/>
+ <enum name="GL_EYE_PLANE_ABSOLUTE_NV"/>
+ <enum name="GL_EYE_PLANE"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program" supported="gl">
+ <require>
+ <enum name="GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_NV"/>
+ <enum name="GL_MAX_TEXTURE_COORDS_NV"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_BINDING_NV"/>
+ <enum name="GL_PROGRAM_ERROR_STRING_NV"/>
+ </require>
+ <require comment="Some NV_fragment_program entry points are shared with ARB_vertex_program">
+ <command name="glProgramNamedParameter4fNV"/>
+ <command name="glProgramNamedParameter4fvNV"/>
+ <command name="glProgramNamedParameter4dNV"/>
+ <command name="glProgramNamedParameter4dvNV"/>
+ <command name="glGetProgramNamedParameterfvNV"/>
+ <command name="glGetProgramNamedParameterdvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program2" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
+ <enum name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
+ <enum name="GL_MAX_PROGRAM_IF_DEPTH_NV"/>
+ <enum name="GL_MAX_PROGRAM_LOOP_DEPTH_NV"/>
+ <enum name="GL_MAX_PROGRAM_LOOP_COUNT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program4" supported="gl"/>
+ <extension name="GL_NV_fragment_program_option" supported="gl"/>
+ <extension name="GL_NV_framebuffer_blit" supported="gles2">
+ <require>
+ <enum name="GL_READ_FRAMEBUFFER_NV"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_NV"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_NV"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_NV"/>
+ <command name="glBlitFramebufferNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_framebuffer_multisample" supported="gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_NV"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV"/>
+ <enum name="GL_MAX_SAMPLES_NV"/>
+ <command name="glRenderbufferStorageMultisampleNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_framebuffer_multisample_coverage" supported="gl">
+ <require>
+ <enum name="GL_RENDERBUFFER_COVERAGE_SAMPLES_NV"/>
+ <enum name="GL_RENDERBUFFER_COLOR_SAMPLES_NV"/>
+ <enum name="GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <enum name="GL_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <command name="glRenderbufferStorageMultisampleCoverageNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_generate_mipmap_sRGB" supported="gles2"/>
+ <extension name="GL_NV_geometry_program4" supported="gl">
+ <require>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_GEOMETRY_PROGRAM_NV"/>
+ <enum name="GL_MAX_PROGRAM_OUTPUT_VERTICES_NV"/>
+ <enum name="GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT_EXT"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE_EXT"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <enum name="GL_PROGRAM_POINT_SIZE_EXT"/>
+ <command name="glProgramVertexLimitNV"/>
+ <command name="glFramebufferTextureEXT"/>
+ <command name="glFramebufferTextureLayerEXT"/>
+ <command name="glFramebufferTextureFaceEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_geometry_shader4" supported="gl"/>
+ <extension name="GL_NV_gpu_program4" supported="gl">
+ <require>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum name="GL_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum name="GL_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum name="GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum name="GL_MAX_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum name="GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV"/>
+ <enum name="GL_MAX_PROGRAM_GENERIC_RESULTS_NV"/>
+ <command name="glProgramLocalParameterI4iNV"/>
+ <command name="glProgramLocalParameterI4ivNV"/>
+ <command name="glProgramLocalParametersI4ivNV"/>
+ <command name="glProgramLocalParameterI4uiNV"/>
+ <command name="glProgramLocalParameterI4uivNV"/>
+ <command name="glProgramLocalParametersI4uivNV"/>
+ <command name="glProgramEnvParameterI4iNV"/>
+ <command name="glProgramEnvParameterI4ivNV"/>
+ <command name="glProgramEnvParametersI4ivNV"/>
+ <command name="glProgramEnvParameterI4uiNV"/>
+ <command name="glProgramEnvParameterI4uivNV"/>
+ <command name="glProgramEnvParametersI4uivNV"/>
+ <command name="glGetProgramLocalParameterIivNV"/>
+ <command name="glGetProgramLocalParameterIuivNV"/>
+ <command name="glGetProgramEnvParameterIivNV"/>
+ <command name="glGetProgramEnvParameterIuivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_gpu_program5" supported="gl">
+ <require>
+ <enum name="GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV"/>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV"/>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <enum name="GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV"/>
+ <enum name="GL_MAX_PROGRAM_SUBROUTINE_NUM_NV"/>
+ <command name="glProgramSubroutineParametersuivNV"/>
+ <command name="glGetProgramSubroutineParameteruivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_gpu_program5_mem_extended" supported="gl"/>
+ <extension name="GL_NV_gpu_shader5" supported="gl">
+ <require>
+ <enum name="GL_INT64_NV"/>
+ <enum name="GL_UNSIGNED_INT64_NV"/>
+ <enum name="GL_INT8_NV"/>
+ <enum name="GL_INT8_VEC2_NV"/>
+ <enum name="GL_INT8_VEC3_NV"/>
+ <enum name="GL_INT8_VEC4_NV"/>
+ <enum name="GL_INT16_NV"/>
+ <enum name="GL_INT16_VEC2_NV"/>
+ <enum name="GL_INT16_VEC3_NV"/>
+ <enum name="GL_INT16_VEC4_NV"/>
+ <enum name="GL_INT64_VEC2_NV"/>
+ <enum name="GL_INT64_VEC3_NV"/>
+ <enum name="GL_INT64_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT8_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT16_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC4_NV"/>
+ <enum name="GL_FLOAT16_NV"/>
+ <enum name="GL_FLOAT16_VEC2_NV"/>
+ <enum name="GL_FLOAT16_VEC3_NV"/>
+ <enum name="GL_FLOAT16_VEC4_NV"/>
+ <enum name="GL_PATCHES"/>
+ <command name="glUniform1i64NV"/>
+ <command name="glUniform2i64NV"/>
+ <command name="glUniform3i64NV"/>
+ <command name="glUniform4i64NV"/>
+ <command name="glUniform1i64vNV"/>
+ <command name="glUniform2i64vNV"/>
+ <command name="glUniform3i64vNV"/>
+ <command name="glUniform4i64vNV"/>
+ <command name="glUniform1ui64NV"/>
+ <command name="glUniform2ui64NV"/>
+ <command name="glUniform3ui64NV"/>
+ <command name="glUniform4ui64NV"/>
+ <command name="glUniform1ui64vNV"/>
+ <command name="glUniform2ui64vNV"/>
+ <command name="glUniform3ui64vNV"/>
+ <command name="glUniform4ui64vNV"/>
+ <command name="glGetUniformi64vNV"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glProgramUniform1i64NV"/>
+ <command name="glProgramUniform2i64NV"/>
+ <command name="glProgramUniform3i64NV"/>
+ <command name="glProgramUniform4i64NV"/>
+ <command name="glProgramUniform1i64vNV"/>
+ <command name="glProgramUniform2i64vNV"/>
+ <command name="glProgramUniform3i64vNV"/>
+ <command name="glProgramUniform4i64vNV"/>
+ <command name="glProgramUniform1ui64NV"/>
+ <command name="glProgramUniform2ui64NV"/>
+ <command name="glProgramUniform3ui64NV"/>
+ <command name="glProgramUniform4ui64NV"/>
+ <command name="glProgramUniform1ui64vNV"/>
+ <command name="glProgramUniform2ui64vNV"/>
+ <command name="glProgramUniform3ui64vNV"/>
+ <command name="glProgramUniform4ui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_half_float" supported="gl">
+ <require>
+ <enum name="GL_HALF_FLOAT_NV"/>
+ <command name="glVertex2hNV"/>
+ <command name="glVertex2hvNV"/>
+ <command name="glVertex3hNV"/>
+ <command name="glVertex3hvNV"/>
+ <command name="glVertex4hNV"/>
+ <command name="glVertex4hvNV"/>
+ <command name="glNormal3hNV"/>
+ <command name="glNormal3hvNV"/>
+ <command name="glColor3hNV"/>
+ <command name="glColor3hvNV"/>
+ <command name="glColor4hNV"/>
+ <command name="glColor4hvNV"/>
+ <command name="glTexCoord1hNV"/>
+ <command name="glTexCoord1hvNV"/>
+ <command name="glTexCoord2hNV"/>
+ <command name="glTexCoord2hvNV"/>
+ <command name="glTexCoord3hNV"/>
+ <command name="glTexCoord3hvNV"/>
+ <command name="glTexCoord4hNV"/>
+ <command name="glTexCoord4hvNV"/>
+ <command name="glMultiTexCoord1hNV"/>
+ <command name="glMultiTexCoord1hvNV"/>
+ <command name="glMultiTexCoord2hNV"/>
+ <command name="glMultiTexCoord2hvNV"/>
+ <command name="glMultiTexCoord3hNV"/>
+ <command name="glMultiTexCoord3hvNV"/>
+ <command name="glMultiTexCoord4hNV"/>
+ <command name="glMultiTexCoord4hvNV"/>
+ <command name="glFogCoordhNV"/>
+ <command name="glFogCoordhvNV"/>
+ <command name="glSecondaryColor3hNV"/>
+ <command name="glSecondaryColor3hvNV"/>
+ <command name="glVertexWeighthNV"/>
+ <command name="glVertexWeighthvNV"/>
+ <command name="glVertexAttrib1hNV"/>
+ <command name="glVertexAttrib1hvNV"/>
+ <command name="glVertexAttrib2hNV"/>
+ <command name="glVertexAttrib2hvNV"/>
+ <command name="glVertexAttrib3hNV"/>
+ <command name="glVertexAttrib3hvNV"/>
+ <command name="glVertexAttrib4hNV"/>
+ <command name="glVertexAttrib4hvNV"/>
+ <command name="glVertexAttribs1hvNV"/>
+ <command name="glVertexAttribs2hvNV"/>
+ <command name="glVertexAttribs3hvNV"/>
+ <command name="glVertexAttribs4hvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_instanced_arrays" supported="gles2">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV"/>
+ <command name="glVertexAttribDivisorNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_light_max_exponent" supported="gl">
+ <require>
+ <enum name="GL_MAX_SHININESS_NV"/>
+ <enum name="GL_MAX_SPOT_EXPONENT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_multisample_coverage" supported="gl">
+ <require>
+ <enum name="GL_SAMPLES_ARB"/>
+ <enum name="GL_COLOR_SAMPLES_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_multisample_filter_hint" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_non_square_matrices" supported="gles2">
+ <require>
+ <enum name="GL_FLOAT_MAT2x3_NV"/>
+ <enum name="GL_FLOAT_MAT2x4_NV"/>
+ <enum name="GL_FLOAT_MAT3x2_NV"/>
+ <enum name="GL_FLOAT_MAT3x4_NV"/>
+ <enum name="GL_FLOAT_MAT4x2_NV"/>
+ <enum name="GL_FLOAT_MAT4x3_NV"/>
+ <command name="glUniformMatrix2x3fvNV"/>
+ <command name="glUniformMatrix3x2fvNV"/>
+ <command name="glUniformMatrix2x4fvNV"/>
+ <command name="glUniformMatrix4x2fvNV"/>
+ <command name="glUniformMatrix3x4fvNV"/>
+ <command name="glUniformMatrix4x3fvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_occlusion_query" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_COUNTER_BITS_NV"/>
+ <enum name="GL_CURRENT_OCCLUSION_QUERY_ID_NV"/>
+ <enum name="GL_PIXEL_COUNT_NV"/>
+ <enum name="GL_PIXEL_COUNT_AVAILABLE_NV"/>
+ <command name="glGenOcclusionQueriesNV"/>
+ <command name="glDeleteOcclusionQueriesNV"/>
+ <command name="glIsOcclusionQueryNV"/>
+ <command name="glBeginOcclusionQueryNV"/>
+ <command name="glEndOcclusionQueryNV"/>
+ <command name="glGetOcclusionQueryivNV"/>
+ <command name="glGetOcclusionQueryuivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_packed_depth_stencil" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_NV"/>
+ <enum name="GL_UNSIGNED_INT_24_8_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_parameter_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV"/>
+ <enum name="GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum name="GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <command name="glProgramBufferParametersfvNV"/>
+ <command name="glProgramBufferParametersIivNV"/>
+ <command name="glProgramBufferParametersIuivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_parameter_buffer_object2" supported="gl"/>
+ <extension name="GL_NV_path_rendering" supported="gl">
+ <require>
+ <enum name="GL_PATH_FORMAT_SVG_NV"/>
+ <enum name="GL_PATH_FORMAT_PS_NV"/>
+ <enum name="GL_STANDARD_FONT_NAME_NV"/>
+ <enum name="GL_SYSTEM_FONT_NAME_NV"/>
+ <enum name="GL_FILE_NAME_NV"/>
+ <enum name="GL_PATH_STROKE_WIDTH_NV"/>
+ <enum name="GL_PATH_END_CAPS_NV"/>
+ <enum name="GL_PATH_INITIAL_END_CAP_NV"/>
+ <enum name="GL_PATH_TERMINAL_END_CAP_NV"/>
+ <enum name="GL_PATH_JOIN_STYLE_NV"/>
+ <enum name="GL_PATH_MITER_LIMIT_NV"/>
+ <enum name="GL_PATH_DASH_CAPS_NV"/>
+ <enum name="GL_PATH_INITIAL_DASH_CAP_NV"/>
+ <enum name="GL_PATH_TERMINAL_DASH_CAP_NV"/>
+ <enum name="GL_PATH_DASH_OFFSET_NV"/>
+ <enum name="GL_PATH_CLIENT_LENGTH_NV"/>
+ <enum name="GL_PATH_FILL_MODE_NV"/>
+ <enum name="GL_PATH_FILL_MASK_NV"/>
+ <enum name="GL_PATH_FILL_COVER_MODE_NV"/>
+ <enum name="GL_PATH_STROKE_COVER_MODE_NV"/>
+ <enum name="GL_PATH_STROKE_MASK_NV"/>
+ <enum name="GL_COUNT_UP_NV"/>
+ <enum name="GL_COUNT_DOWN_NV"/>
+ <enum name="GL_PATH_OBJECT_BOUNDING_BOX_NV"/>
+ <enum name="GL_CONVEX_HULL_NV"/>
+ <enum name="GL_BOUNDING_BOX_NV"/>
+ <enum name="GL_TRANSLATE_X_NV"/>
+ <enum name="GL_TRANSLATE_Y_NV"/>
+ <enum name="GL_TRANSLATE_2D_NV"/>
+ <enum name="GL_TRANSLATE_3D_NV"/>
+ <enum name="GL_AFFINE_2D_NV"/>
+ <enum name="GL_AFFINE_3D_NV"/>
+ <enum name="GL_TRANSPOSE_AFFINE_2D_NV"/>
+ <enum name="GL_TRANSPOSE_AFFINE_3D_NV"/>
+ <enum name="GL_UTF8_NV"/>
+ <enum name="GL_UTF16_NV"/>
+ <enum name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV"/>
+ <enum name="GL_PATH_COMMAND_COUNT_NV"/>
+ <enum name="GL_PATH_COORD_COUNT_NV"/>
+ <enum name="GL_PATH_DASH_ARRAY_COUNT_NV"/>
+ <enum name="GL_PATH_COMPUTED_LENGTH_NV"/>
+ <enum name="GL_PATH_FILL_BOUNDING_BOX_NV"/>
+ <enum name="GL_PATH_STROKE_BOUNDING_BOX_NV"/>
+ <enum name="GL_SQUARE_NV"/>
+ <enum name="GL_ROUND_NV"/>
+ <enum name="GL_TRIANGULAR_NV"/>
+ <enum name="GL_BEVEL_NV"/>
+ <enum name="GL_MITER_REVERT_NV"/>
+ <enum name="GL_MITER_TRUNCATE_NV"/>
+ <enum name="GL_SKIP_MISSING_GLYPH_NV"/>
+ <enum name="GL_USE_MISSING_GLYPH_NV"/>
+ <enum name="GL_PATH_ERROR_POSITION_NV"/>
+ <enum name="GL_PATH_FOG_GEN_MODE_NV"/>
+ <enum name="GL_ACCUM_ADJACENT_PAIRS_NV"/>
+ <enum name="GL_ADJACENT_PAIRS_NV"/>
+ <enum name="GL_FIRST_TO_REST_NV"/>
+ <enum name="GL_PATH_GEN_MODE_NV"/>
+ <enum name="GL_PATH_GEN_COEFF_NV"/>
+ <enum name="GL_PATH_GEN_COLOR_FORMAT_NV"/>
+ <enum name="GL_PATH_GEN_COMPONENTS_NV"/>
+ <enum name="GL_PATH_STENCIL_FUNC_NV"/>
+ <enum name="GL_PATH_STENCIL_REF_NV"/>
+ <enum name="GL_PATH_STENCIL_VALUE_MASK_NV"/>
+ <enum name="GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV"/>
+ <enum name="GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV"/>
+ <enum name="GL_PATH_COVER_DEPTH_FUNC_NV"/>
+ <enum name="GL_PATH_DASH_OFFSET_RESET_NV"/>
+ <enum name="GL_MOVE_TO_RESETS_NV"/>
+ <enum name="GL_MOVE_TO_CONTINUES_NV"/>
+ <enum name="GL_CLOSE_PATH_NV"/>
+ <enum name="GL_MOVE_TO_NV"/>
+ <enum name="GL_RELATIVE_MOVE_TO_NV"/>
+ <enum name="GL_LINE_TO_NV"/>
+ <enum name="GL_RELATIVE_LINE_TO_NV"/>
+ <enum name="GL_HORIZONTAL_LINE_TO_NV"/>
+ <enum name="GL_RELATIVE_HORIZONTAL_LINE_TO_NV"/>
+ <enum name="GL_VERTICAL_LINE_TO_NV"/>
+ <enum name="GL_RELATIVE_VERTICAL_LINE_TO_NV"/>
+ <enum name="GL_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_SMALL_CCW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_SMALL_CCW_ARC_TO_NV"/>
+ <enum name="GL_SMALL_CW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_SMALL_CW_ARC_TO_NV"/>
+ <enum name="GL_LARGE_CCW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_LARGE_CCW_ARC_TO_NV"/>
+ <enum name="GL_LARGE_CW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_LARGE_CW_ARC_TO_NV"/>
+ <enum name="GL_RESTART_PATH_NV"/>
+ <enum name="GL_DUP_FIRST_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_DUP_LAST_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_RECT_NV"/>
+ <enum name="GL_CIRCULAR_CCW_ARC_TO_NV"/>
+ <enum name="GL_CIRCULAR_CW_ARC_TO_NV"/>
+ <enum name="GL_CIRCULAR_TANGENT_ARC_TO_NV"/>
+ <enum name="GL_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_ARC_TO_NV"/>
+ <enum name="GL_BOLD_BIT_NV"/>
+ <enum name="GL_ITALIC_BIT_NV"/>
+ <enum name="GL_GLYPH_WIDTH_BIT_NV"/>
+ <enum name="GL_GLYPH_HEIGHT_BIT_NV"/>
+ <enum name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV"/>
+ <enum name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV"/>
+ <enum name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV"/>
+ <enum name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV"/>
+ <enum name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum name="GL_GLYPH_HAS_KERNING_BIT_NV"/>
+ <enum name="GL_FONT_X_MIN_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_Y_MIN_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_X_MAX_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_Y_MAX_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_UNITS_PER_EM_BIT_NV"/>
+ <enum name="GL_FONT_ASCENDER_BIT_NV"/>
+ <enum name="GL_FONT_DESCENDER_BIT_NV"/>
+ <enum name="GL_FONT_HEIGHT_BIT_NV"/>
+ <enum name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV"/>
+ <enum name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV"/>
+ <enum name="GL_FONT_UNDERLINE_POSITION_BIT_NV"/>
+ <enum name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV"/>
+ <enum name="GL_FONT_HAS_KERNING_BIT_NV"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PRIMARY_COLOR_NV"/>
+ <enum name="GL_SECONDARY_COLOR_NV"/>
+ <command name="glGenPathsNV"/>
+ <command name="glDeletePathsNV"/>
+ <command name="glIsPathNV"/>
+ <command name="glPathCommandsNV"/>
+ <command name="glPathCoordsNV"/>
+ <command name="glPathSubCommandsNV"/>
+ <command name="glPathSubCoordsNV"/>
+ <command name="glPathStringNV"/>
+ <command name="glPathGlyphsNV"/>
+ <command name="glPathGlyphRangeNV"/>
+ <command name="glWeightPathsNV"/>
+ <command name="glCopyPathNV"/>
+ <command name="glInterpolatePathsNV"/>
+ <command name="glTransformPathNV"/>
+ <command name="glPathParameterivNV"/>
+ <command name="glPathParameteriNV"/>
+ <command name="glPathParameterfvNV"/>
+ <command name="glPathParameterfNV"/>
+ <command name="glPathDashArrayNV"/>
+ <command name="glPathStencilFuncNV"/>
+ <command name="glPathStencilDepthOffsetNV"/>
+ <command name="glStencilFillPathNV"/>
+ <command name="glStencilStrokePathNV"/>
+ <command name="glStencilFillPathInstancedNV"/>
+ <command name="glStencilStrokePathInstancedNV"/>
+ <command name="glPathCoverDepthFuncNV"/>
+ <command name="glPathColorGenNV"/>
+ <command name="glPathTexGenNV"/>
+ <command name="glPathFogGenNV"/>
+ <command name="glCoverFillPathNV"/>
+ <command name="glCoverStrokePathNV"/>
+ <command name="glCoverFillPathInstancedNV"/>
+ <command name="glCoverStrokePathInstancedNV"/>
+ <command name="glGetPathParameterivNV"/>
+ <command name="glGetPathParameterfvNV"/>
+ <command name="glGetPathCommandsNV"/>
+ <command name="glGetPathCoordsNV"/>
+ <command name="glGetPathDashArrayNV"/>
+ <command name="glGetPathMetricsNV"/>
+ <command name="glGetPathMetricRangeNV"/>
+ <command name="glGetPathSpacingNV"/>
+ <command name="glGetPathColorGenivNV"/>
+ <command name="glGetPathColorGenfvNV"/>
+ <command name="glGetPathTexGenivNV"/>
+ <command name="glGetPathTexGenfvNV"/>
+ <command name="glIsPointInFillPathNV"/>
+ <command name="glIsPointInStrokePathNV"/>
+ <command name="glGetPathLengthNV"/>
+ <command name="glPointAlongPathNV"/>
+ </require>
+ <require comment="API revision 1.2">
+ <enum name="GL_ROUNDED_RECT_NV"/>
+ <enum name="GL_RELATIVE_ROUNDED_RECT_NV"/>
+ <enum name="GL_ROUNDED_RECT2_NV"/>
+ <enum name="GL_RELATIVE_ROUNDED_RECT2_NV"/>
+ <enum name="GL_ROUNDED_RECT4_NV"/>
+ <enum name="GL_RELATIVE_ROUNDED_RECT4_NV"/>
+ <enum name="GL_ROUNDED_RECT8_NV"/>
+ <enum name="GL_RELATIVE_ROUNDED_RECT8_NV"/>
+ <enum name="GL_RELATIVE_RECT_NV"/>
+ <enum name="GL_FONT_GLYPHS_AVAILABLE_NV"/>
+ <enum name="GL_FONT_TARGET_UNAVAILABLE_NV"/>
+ <enum name="GL_FONT_UNAVAILABLE_NV"/>
+ <enum name="GL_FONT_UNINTELLIGIBLE_NV"/>
+ <command name="glMatrixLoad3x2fNV"/>
+ <command name="glMatrixLoad3x3fNV"/>
+ <command name="glMatrixLoadTranspose3x3fNV"/>
+ <command name="glMatrixMult3x2fNV"/>
+ <command name="glMatrixMult3x3fNV"/>
+ <command name="glMatrixMultTranspose3x3fNV"/>
+ <command name="glStencilThenCoverFillPathNV"/>
+ <command name="glStencilThenCoverStrokePathNV"/>
+ <command name="glStencilThenCoverFillPathInstancedNV"/>
+ <command name="glStencilThenCoverStrokePathInstancedNV"/>
+ <command name="glPathGlyphIndexRangeNV"/>
+ </require>
+ <require comment="API revision 1.3">
+ <enum name="GL_CONIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_CONIC_CURVE_TO_NV"/>
+ <enum name="GL_FONT_NUM_GLYPH_INDICES_BIT_NV"/>
+ <enum name="GL_STANDARD_FONT_FORMAT_NV"/>
+ <command name="glPathGlyphIndexArrayNV"/>
+ <command name="glPathMemoryGlyphIndexArrayNV"/>
+ <command name="glProgramPathFragmentInputGenNV"/>
+ <command name="glGetProgramResourcefvNV"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_2_BYTES_NV"/>
+ <enum name="GL_3_BYTES_NV"/>
+ <enum name="GL_4_BYTES_NV"/>
+ <enum name="GL_EYE_LINEAR_NV"/>
+ <enum name="GL_OBJECT_LINEAR_NV"/>
+ <enum name="GL_CONSTANT_NV"/>
+ </require>
+ <require comment="Other API additions of unknown history">
+ <enum name="GL_PATH_PROJECTION_NV"/>
+ <enum name="GL_PATH_MODELVIEW_NV"/>
+ <enum name="GL_PATH_MODELVIEW_STACK_DEPTH_NV"/>
+ <enum name="GL_PATH_MODELVIEW_MATRIX_NV"/>
+ <enum name="GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV"/>
+ <enum name="GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV"/>
+ <enum name="GL_PATH_PROJECTION_STACK_DEPTH_NV"/>
+ <enum name="GL_PATH_PROJECTION_MATRIX_NV"/>
+ <enum name="GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV"/>
+ <enum name="GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV"/>
+ <enum name="GL_FRAGMENT_INPUT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_pixel_data_range" supported="gl">
+ <require>
+ <enum name="GL_WRITE_PIXEL_DATA_RANGE_NV"/>
+ <enum name="GL_READ_PIXEL_DATA_RANGE_NV"/>
+ <enum name="GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum name="GL_READ_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum name="GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <enum name="GL_READ_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <command name="glPixelDataRangeNV"/>
+ <command name="glFlushPixelDataRangeNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_point_sprite" supported="gl">
+ <require>
+ <enum name="GL_POINT_SPRITE_NV"/>
+ <enum name="GL_COORD_REPLACE_NV"/>
+ <enum name="GL_POINT_SPRITE_R_MODE_NV"/>
+ <command name="glPointParameteriNV"/>
+ <command name="glPointParameterivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_present_video" supported="gl">
+ <require>
+ <enum name="GL_FRAME_NV"/>
+ <enum name="GL_FIELDS_NV"/>
+ <enum name="GL_CURRENT_TIME_NV"/>
+ <enum name="GL_NUM_FILL_STREAMS_NV"/>
+ <enum name="GL_PRESENT_TIME_NV"/>
+ <enum name="GL_PRESENT_DURATION_NV"/>
+ <command name="glPresentFrameKeyedNV"/>
+ <command name="glPresentFrameDualFillNV"/>
+ <command name="glGetVideoivNV"/>
+ <command name="glGetVideouivNV"/>
+ <command name="glGetVideoi64vNV"/>
+ <command name="glGetVideoui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_primitive_restart" supported="gl">
+ <require>
+ <enum name="GL_PRIMITIVE_RESTART_NV"/>
+ <enum name="GL_PRIMITIVE_RESTART_INDEX_NV"/>
+ <command name="glPrimitiveRestartNV"/>
+ <command name="glPrimitiveRestartIndexNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_buffer" supported="gles2">
+ <require>
+ <enum name="GL_READ_BUFFER_NV"/>
+ <command name="glReadBufferNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_buffer_front" supported="gles2"/>
+ <extension name="GL_NV_read_depth" supported="gles2"/>
+ <extension name="GL_NV_read_depth_stencil" supported="gles2"/>
+ <extension name="GL_NV_read_stencil" supported="gles2"/>
+ <extension name="GL_NV_register_combiners" supported="gl">
+ <require>
+ <enum name="GL_REGISTER_COMBINERS_NV"/>
+ <enum name="GL_VARIABLE_A_NV"/>
+ <enum name="GL_VARIABLE_B_NV"/>
+ <enum name="GL_VARIABLE_C_NV"/>
+ <enum name="GL_VARIABLE_D_NV"/>
+ <enum name="GL_VARIABLE_E_NV"/>
+ <enum name="GL_VARIABLE_F_NV"/>
+ <enum name="GL_VARIABLE_G_NV"/>
+ <enum name="GL_CONSTANT_COLOR0_NV"/>
+ <enum name="GL_CONSTANT_COLOR1_NV"/>
+ <enum name="GL_PRIMARY_COLOR_NV"/>
+ <enum name="GL_SECONDARY_COLOR_NV"/>
+ <enum name="GL_SPARE0_NV"/>
+ <enum name="GL_SPARE1_NV"/>
+ <enum name="GL_DISCARD_NV"/>
+ <enum name="GL_E_TIMES_F_NV"/>
+ <enum name="GL_SPARE0_PLUS_SECONDARY_COLOR_NV"/>
+ <enum name="GL_UNSIGNED_IDENTITY_NV"/>
+ <enum name="GL_UNSIGNED_INVERT_NV"/>
+ <enum name="GL_EXPAND_NORMAL_NV"/>
+ <enum name="GL_EXPAND_NEGATE_NV"/>
+ <enum name="GL_HALF_BIAS_NORMAL_NV"/>
+ <enum name="GL_HALF_BIAS_NEGATE_NV"/>
+ <enum name="GL_SIGNED_IDENTITY_NV"/>
+ <enum name="GL_SIGNED_NEGATE_NV"/>
+ <enum name="GL_SCALE_BY_TWO_NV"/>
+ <enum name="GL_SCALE_BY_FOUR_NV"/>
+ <enum name="GL_SCALE_BY_ONE_HALF_NV"/>
+ <enum name="GL_BIAS_BY_NEGATIVE_ONE_HALF_NV"/>
+ <enum name="GL_COMBINER_INPUT_NV"/>
+ <enum name="GL_COMBINER_MAPPING_NV"/>
+ <enum name="GL_COMBINER_COMPONENT_USAGE_NV"/>
+ <enum name="GL_COMBINER_AB_DOT_PRODUCT_NV"/>
+ <enum name="GL_COMBINER_CD_DOT_PRODUCT_NV"/>
+ <enum name="GL_COMBINER_MUX_SUM_NV"/>
+ <enum name="GL_COMBINER_SCALE_NV"/>
+ <enum name="GL_COMBINER_BIAS_NV"/>
+ <enum name="GL_COMBINER_AB_OUTPUT_NV"/>
+ <enum name="GL_COMBINER_CD_OUTPUT_NV"/>
+ <enum name="GL_COMBINER_SUM_OUTPUT_NV"/>
+ <enum name="GL_MAX_GENERAL_COMBINERS_NV"/>
+ <enum name="GL_NUM_GENERAL_COMBINERS_NV"/>
+ <enum name="GL_COLOR_SUM_CLAMP_NV"/>
+ <enum name="GL_COMBINER0_NV"/>
+ <enum name="GL_COMBINER1_NV"/>
+ <enum name="GL_COMBINER2_NV"/>
+ <enum name="GL_COMBINER3_NV"/>
+ <enum name="GL_COMBINER4_NV"/>
+ <enum name="GL_COMBINER5_NV"/>
+ <enum name="GL_COMBINER6_NV"/>
+ <enum name="GL_COMBINER7_NV"/>
+ <enum name="GL_TEXTURE0_ARB"/>
+ <enum name="GL_TEXTURE1_ARB"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_FOG"/>
+ <command name="glCombinerParameterfvNV"/>
+ <command name="glCombinerParameterfNV"/>
+ <command name="glCombinerParameterivNV"/>
+ <command name="glCombinerParameteriNV"/>
+ <command name="glCombinerInputNV"/>
+ <command name="glCombinerOutputNV"/>
+ <command name="glFinalCombinerInputNV"/>
+ <command name="glGetCombinerInputParameterfvNV"/>
+ <command name="glGetCombinerInputParameterivNV"/>
+ <command name="glGetCombinerOutputParameterfvNV"/>
+ <command name="glGetCombinerOutputParameterivNV"/>
+ <command name="glGetFinalCombinerInputParameterfvNV"/>
+ <command name="glGetFinalCombinerInputParameterivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_register_combiners2" supported="gl">
+ <require>
+ <enum name="GL_PER_STAGE_CONSTANTS_NV"/>
+ <command name="glCombinerStageParameterfvNV"/>
+ <command name="glGetCombinerStageParameterfvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_sRGB_formats" supported="gles2">
+ <require>
+ <enum name="GL_SLUMINANCE_NV"/>
+ <enum name="GL_SLUMINANCE_ALPHA_NV"/>
+ <enum name="GL_SRGB8_NV"/>
+ <enum name="GL_SLUMINANCE8_NV"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_S3TC_DXT1_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV"/>
+ <enum name="GL_ETC1_SRGB8_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_atomic_counters" supported="gl"/>
+ <extension name="GL_NV_shader_atomic_float" supported="gl"/>
+ <extension name="GL_NV_shader_atomic_int64" supported="gl"/>
+ <extension name="GL_NV_shader_buffer_load" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_GPU_ADDRESS_NV"/>
+ <enum name="GL_GPU_ADDRESS_NV"/>
+ <enum name="GL_MAX_SHADER_BUFFER_ADDRESS_NV"/>
+ <command name="glMakeBufferResidentNV"/>
+ <command name="glMakeBufferNonResidentNV"/>
+ <command name="glIsBufferResidentNV"/>
+ <command name="glMakeNamedBufferResidentNV"/>
+ <command name="glMakeNamedBufferNonResidentNV"/>
+ <command name="glIsNamedBufferResidentNV"/>
+ <command name="glGetBufferParameterui64vNV"/>
+ <command name="glGetNamedBufferParameterui64vNV"/>
+ <command name="glGetIntegerui64vNV"/>
+ <command name="glUniformui64NV"/>
+ <command name="glUniformui64vNV"/>
+ <command name="glGetUniformui64vNV"/>
+ <command name="glProgramUniformui64NV"/>
+ <command name="glProgramUniformui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_buffer_store" supported="gl">
+ <require>
+ <enum name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
+ <enum name="GL_READ_WRITE"/>
+ <enum name="GL_WRITE_ONLY"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_storage_buffer_object" supported="gl"/>
+ <extension name="GL_NV_shader_thread_group" supported="gl">
+ <require>
+ <enum name="GL_WARP_SIZE_NV"/>
+ <enum name="GL_WARPS_PER_SM_NV"/>
+ <enum name="GL_SM_COUNT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_thread_shuffle" supported="gl"/>
+ <extension name="GL_NV_shadow_samplers_array" supported="gles2">
+ <require>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shadow_samplers_cube" supported="gles2">
+ <require>
+ <enum name="GL_SAMPLER_CUBE_SHADOW_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_tessellation_program5" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_PATCH_ATTRIBS_NV"/>
+ <enum name="GL_TESS_CONTROL_PROGRAM_NV"/>
+ <enum name="GL_TESS_EVALUATION_PROGRAM_NV"/>
+ <enum name="GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum name="GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texgen_emboss" supported="gl">
+ <require>
+ <enum name="GL_EMBOSS_LIGHT_NV"/>
+ <enum name="GL_EMBOSS_CONSTANT_NV"/>
+ <enum name="GL_EMBOSS_MAP_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texgen_reflection" supported="gl">
+ <require>
+ <enum name="GL_NORMAL_MAP_NV"/>
+ <enum name="GL_REFLECTION_MAP_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_barrier" supported="gl">
+ <require>
+ <command name="glTextureBarrierNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_border_clamp" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_BORDER_COLOR_NV"/>
+ <enum name="GL_CLAMP_TO_BORDER_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_compression_s3tc_update" supported="gles2"/>
+ <extension name="GL_NV_texture_compression_vtc" supported="gl"/>
+ <extension name="GL_NV_texture_env_combine4" supported="gl">
+ <require>
+ <enum name="GL_COMBINE4_NV"/>
+ <enum name="GL_SOURCE3_RGB_NV"/>
+ <enum name="GL_SOURCE3_ALPHA_NV"/>
+ <enum name="GL_OPERAND3_RGB_NV"/>
+ <enum name="GL_OPERAND3_ALPHA_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_expand_normal" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_UNSIGNED_REMAP_MODE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_multisample" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COVERAGE_SAMPLES_NV"/>
+ <enum name="GL_TEXTURE_COLOR_SAMPLES_NV"/>
+ <command name="glTexImage2DMultisampleCoverageNV"/>
+ <command name="glTexImage3DMultisampleCoverageNV"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glTextureImage2DMultisampleNV"/>
+ <command name="glTextureImage3DMultisampleNV"/>
+ <command name="glTextureImage2DMultisampleCoverageNV"/>
+ <command name="glTextureImage3DMultisampleCoverageNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_npot_2D_mipmap" supported="gles2"/>
+ <extension name="GL_NV_texture_rectangle" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE_NV"/>
+ <enum name="GL_PROXY_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_shader" supported="gl">
+ <require>
+ <enum name="GL_OFFSET_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV"/>
+ <enum name="GL_UNSIGNED_INT_S8_S8_8_8_NV"/>
+ <enum name="GL_UNSIGNED_INT_8_8_S8_S8_REV_NV"/>
+ <enum name="GL_DSDT_MAG_INTENSITY_NV"/>
+ <enum name="GL_SHADER_CONSISTENT_NV"/>
+ <enum name="GL_TEXTURE_SHADER_NV"/>
+ <enum name="GL_SHADER_OPERATION_NV"/>
+ <enum name="GL_CULL_MODES_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_MATRIX_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_SCALE_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_BIAS_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_MATRIX_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_SCALE_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_BIAS_NV"/>
+ <enum name="GL_PREVIOUS_TEXTURE_INPUT_NV"/>
+ <enum name="GL_CONST_EYE_NV"/>
+ <enum name="GL_PASS_THROUGH_NV"/>
+ <enum name="GL_CULL_FRAGMENT_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_NV"/>
+ <enum name="GL_DEPENDENT_AR_TEXTURE_2D_NV"/>
+ <enum name="GL_DEPENDENT_GB_TEXTURE_2D_NV"/>
+ <enum name="GL_DOT_PRODUCT_NV"/>
+ <enum name="GL_DOT_PRODUCT_DEPTH_REPLACE_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_2D_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV"/>
+ <enum name="GL_HILO_NV"/>
+ <enum name="GL_DSDT_NV"/>
+ <enum name="GL_DSDT_MAG_NV"/>
+ <enum name="GL_DSDT_MAG_VIB_NV"/>
+ <enum name="GL_HILO16_NV"/>
+ <enum name="GL_SIGNED_HILO_NV"/>
+ <enum name="GL_SIGNED_HILO16_NV"/>
+ <enum name="GL_SIGNED_RGBA_NV"/>
+ <enum name="GL_SIGNED_RGBA8_NV"/>
+ <enum name="GL_SIGNED_RGB_NV"/>
+ <enum name="GL_SIGNED_RGB8_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE8_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE_ALPHA_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE8_ALPHA8_NV"/>
+ <enum name="GL_SIGNED_ALPHA_NV"/>
+ <enum name="GL_SIGNED_ALPHA8_NV"/>
+ <enum name="GL_SIGNED_INTENSITY_NV"/>
+ <enum name="GL_SIGNED_INTENSITY8_NV"/>
+ <enum name="GL_DSDT8_NV"/>
+ <enum name="GL_DSDT8_MAG8_NV"/>
+ <enum name="GL_DSDT8_MAG8_INTENSITY8_NV"/>
+ <enum name="GL_SIGNED_RGB_UNSIGNED_ALPHA_NV"/>
+ <enum name="GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV"/>
+ <enum name="GL_HI_SCALE_NV"/>
+ <enum name="GL_LO_SCALE_NV"/>
+ <enum name="GL_DS_SCALE_NV"/>
+ <enum name="GL_DT_SCALE_NV"/>
+ <enum name="GL_MAGNITUDE_SCALE_NV"/>
+ <enum name="GL_VIBRANCE_SCALE_NV"/>
+ <enum name="GL_HI_BIAS_NV"/>
+ <enum name="GL_LO_BIAS_NV"/>
+ <enum name="GL_DS_BIAS_NV"/>
+ <enum name="GL_DT_BIAS_NV"/>
+ <enum name="GL_MAGNITUDE_BIAS_NV"/>
+ <enum name="GL_VIBRANCE_BIAS_NV"/>
+ <enum name="GL_TEXTURE_BORDER_VALUES_NV"/>
+ <enum name="GL_TEXTURE_HI_SIZE_NV"/>
+ <enum name="GL_TEXTURE_LO_SIZE_NV"/>
+ <enum name="GL_TEXTURE_DS_SIZE_NV"/>
+ <enum name="GL_TEXTURE_DT_SIZE_NV"/>
+ <enum name="GL_TEXTURE_MAG_SIZE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_shader2" supported="gl">
+ <require>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_3D_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_shader3" supported="gl">
+ <require>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV"/>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum name="GL_OFFSET_HILO_TEXTURE_2D_NV"/>
+ <enum name="GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_DEPENDENT_HILO_TEXTURE_2D_NV"/>
+ <enum name="GL_DEPENDENT_RGB_TEXTURE_3D_NV"/>
+ <enum name="GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_PASS_THROUGH_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_1D_NV"/>
+ <enum name="GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV"/>
+ <enum name="GL_HILO8_NV"/>
+ <enum name="GL_SIGNED_HILO8_NV"/>
+ <enum name="GL_FORCE_BLUE_TO_ONE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_transform_feedback" supported="gl">
+ <require>
+ <enum name="GL_BACK_PRIMARY_COLOR_NV"/>
+ <enum name="GL_BACK_SECONDARY_COLOR_NV"/>
+ <enum name="GL_TEXTURE_COORD_NV"/>
+ <enum name="GL_CLIP_DISTANCE_NV"/>
+ <enum name="GL_VERTEX_ID_NV"/>
+ <enum name="GL_PRIMITIVE_ID_NV"/>
+ <enum name="GL_GENERIC_ATTRIB_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_ATTRIBS_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV"/>
+ <enum name="GL_ACTIVE_VARYINGS_NV"/>
+ <enum name="GL_ACTIVE_VARYING_MAX_LENGTH_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_RECORD_NV"/>
+ <enum name="GL_PRIMITIVES_GENERATED_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV"/>
+ <enum name="GL_RASTERIZER_DISCARD_NV"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS_NV"/>
+ <enum name="GL_SEPARATE_ATTRIBS_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV"/>
+ <enum name="GL_LAYER_NV"/>
+ <command name="glBeginTransformFeedbackNV"/>
+ <command name="glEndTransformFeedbackNV"/>
+ <command name="glTransformFeedbackAttribsNV"/>
+ <command name="glBindBufferRangeNV"/>
+ <command name="glBindBufferOffsetNV"/>
+ <command name="glBindBufferBaseNV"/>
+ <command name="glTransformFeedbackVaryingsNV"/>
+ <command name="glActiveVaryingNV"/>
+ <command name="glGetVaryingLocationNV"/>
+ <command name="glGetActiveVaryingNV"/>
+ <command name="glGetTransformFeedbackVaryingNV"/>
+ </require>
+ <require comment="Extended by GL_ARB_transform_feedback3">
+ <enum name="GL_NEXT_BUFFER_NV"/>
+ <enum name="GL_SKIP_COMPONENTS4_NV"/>
+ <enum name="GL_SKIP_COMPONENTS3_NV"/>
+ <enum name="GL_SKIP_COMPONENTS2_NV"/>
+ <enum name="GL_SKIP_COMPONENTS1_NV"/>
+ <command name="glTransformFeedbackStreamAttribsNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_transform_feedback2" supported="gl">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING_NV"/>
+ <command name="glBindTransformFeedbackNV"/>
+ <command name="glDeleteTransformFeedbacksNV"/>
+ <command name="glGenTransformFeedbacksNV"/>
+ <command name="glIsTransformFeedbackNV"/>
+ <command name="glPauseTransformFeedbackNV"/>
+ <command name="glResumeTransformFeedbackNV"/>
+ <command name="glDrawTransformFeedbackNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vdpau_interop" supported="gl">
+ <require>
+ <enum name="GL_SURFACE_STATE_NV"/>
+ <enum name="GL_SURFACE_REGISTERED_NV"/>
+ <enum name="GL_SURFACE_MAPPED_NV"/>
+ <enum name="GL_WRITE_DISCARD_NV"/>
+ <command name="glVDPAUInitNV"/>
+ <command name="glVDPAUFiniNV"/>
+ <command name="glVDPAURegisterVideoSurfaceNV"/>
+ <command name="glVDPAURegisterOutputSurfaceNV"/>
+ <command name="glVDPAUIsSurfaceNV"/>
+ <command name="glVDPAUUnregisterSurfaceNV"/>
+ <command name="glVDPAUGetSurfaceivNV"/>
+ <command name="glVDPAUSurfaceAccessNV"/>
+ <command name="glVDPAUMapSurfacesNV"/>
+ <command name="glVDPAUUnmapSurfacesNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_array_range" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_RANGE_NV"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_LENGTH_NV"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_VALID_NV"/>
+ <enum name="GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_POINTER_NV"/>
+ <command name="glFlushVertexArrayRangeNV"/>
+ <command name="glVertexArrayRangeNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_array_range2" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_attrib_integer_64bit" supported="gl">
+ <require>
+ <enum name="GL_INT64_NV"/>
+ <enum name="GL_UNSIGNED_INT64_NV"/>
+ <command name="glVertexAttribL1i64NV"/>
+ <command name="glVertexAttribL2i64NV"/>
+ <command name="glVertexAttribL3i64NV"/>
+ <command name="glVertexAttribL4i64NV"/>
+ <command name="glVertexAttribL1i64vNV"/>
+ <command name="glVertexAttribL2i64vNV"/>
+ <command name="glVertexAttribL3i64vNV"/>
+ <command name="glVertexAttribL4i64vNV"/>
+ <command name="glVertexAttribL1ui64NV"/>
+ <command name="glVertexAttribL2ui64NV"/>
+ <command name="glVertexAttribL3ui64NV"/>
+ <command name="glVertexAttribL4ui64NV"/>
+ <command name="glVertexAttribL1ui64vNV"/>
+ <command name="glVertexAttribL2ui64vNV"/>
+ <command name="glVertexAttribL3ui64vNV"/>
+ <command name="glVertexAttribL4ui64vNV"/>
+ <command name="glGetVertexAttribLi64vNV"/>
+ <command name="glGetVertexAttribLui64vNV"/>
+ <command name="glVertexAttribLFormatNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_buffer_unified_memory" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV"/>
+ <enum name="GL_ELEMENT_ARRAY_UNIFIED_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_VERTEX_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_NORMAL_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_INDEX_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_FOG_COORD_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_ELEMENT_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV"/>
+ <enum name="GL_VERTEX_ARRAY_LENGTH_NV"/>
+ <enum name="GL_NORMAL_ARRAY_LENGTH_NV"/>
+ <enum name="GL_COLOR_ARRAY_LENGTH_NV"/>
+ <enum name="GL_INDEX_ARRAY_LENGTH_NV"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_LENGTH_NV"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_LENGTH_NV"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_LENGTH_NV"/>
+ <enum name="GL_FOG_COORD_ARRAY_LENGTH_NV"/>
+ <enum name="GL_ELEMENT_ARRAY_LENGTH_NV"/>
+ <enum name="GL_DRAW_INDIRECT_UNIFIED_NV"/>
+ <enum name="GL_DRAW_INDIRECT_ADDRESS_NV"/>
+ <enum name="GL_DRAW_INDIRECT_LENGTH_NV"/>
+ <command name="glBufferAddressRangeNV"/>
+ <command name="glVertexFormatNV"/>
+ <command name="glNormalFormatNV"/>
+ <command name="glColorFormatNV"/>
+ <command name="glIndexFormatNV"/>
+ <command name="glTexCoordFormatNV"/>
+ <command name="glEdgeFlagFormatNV"/>
+ <command name="glSecondaryColorFormatNV"/>
+ <command name="glFogCoordFormatNV"/>
+ <command name="glVertexAttribFormatNV"/>
+ <command name="glVertexAttribIFormatNV"/>
+ <command name="glGetIntegerui64i_vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_PROGRAM_NV"/>
+ <enum name="GL_VERTEX_STATE_PROGRAM_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_SIZE_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_STRIDE_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_TYPE_NV"/>
+ <enum name="GL_CURRENT_ATTRIB_NV"/>
+ <enum name="GL_PROGRAM_LENGTH_NV"/>
+ <enum name="GL_PROGRAM_STRING_NV"/>
+ <enum name="GL_MODELVIEW_PROJECTION_NV"/>
+ <enum name="GL_IDENTITY_NV"/>
+ <enum name="GL_INVERSE_NV"/>
+ <enum name="GL_TRANSPOSE_NV"/>
+ <enum name="GL_INVERSE_TRANSPOSE_NV"/>
+ <enum name="GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV"/>
+ <enum name="GL_MAX_TRACK_MATRICES_NV"/>
+ <enum name="GL_MATRIX0_NV"/>
+ <enum name="GL_MATRIX1_NV"/>
+ <enum name="GL_MATRIX2_NV"/>
+ <enum name="GL_MATRIX3_NV"/>
+ <enum name="GL_MATRIX4_NV"/>
+ <enum name="GL_MATRIX5_NV"/>
+ <enum name="GL_MATRIX6_NV"/>
+ <enum name="GL_MATRIX7_NV"/>
+ <enum name="GL_CURRENT_MATRIX_STACK_DEPTH_NV"/>
+ <enum name="GL_CURRENT_MATRIX_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE_NV"/>
+ <enum name="GL_PROGRAM_PARAMETER_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_POINTER_NV"/>
+ <enum name="GL_PROGRAM_TARGET_NV"/>
+ <enum name="GL_PROGRAM_RESIDENT_NV"/>
+ <enum name="GL_TRACK_MATRIX_NV"/>
+ <enum name="GL_TRACK_MATRIX_TRANSFORM_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_BINDING_NV"/>
+ <enum name="GL_PROGRAM_ERROR_POSITION_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY0_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY1_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY2_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY3_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY4_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY5_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY6_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY7_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY8_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY9_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY10_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY11_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY12_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY13_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY14_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY15_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB0_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB1_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB2_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB3_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB4_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB5_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB6_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB7_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB8_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB9_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB10_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB11_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB12_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB13_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB14_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB15_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB0_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB1_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB2_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB3_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB4_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB5_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB6_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB7_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB8_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB9_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB10_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB11_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB12_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB13_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB14_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB15_4_NV"/>
+ <command name="glAreProgramsResidentNV"/>
+ <command name="glBindProgramNV"/>
+ <command name="glDeleteProgramsNV"/>
+ <command name="glExecuteProgramNV"/>
+ <command name="glGenProgramsNV"/>
+ <command name="glGetProgramParameterdvNV"/>
+ <command name="glGetProgramParameterfvNV"/>
+ <command name="glGetProgramivNV"/>
+ <command name="glGetProgramStringNV"/>
+ <command name="glGetTrackMatrixivNV"/>
+ <command name="glGetVertexAttribdvNV"/>
+ <command name="glGetVertexAttribfvNV"/>
+ <command name="glGetVertexAttribivNV"/>
+ <command name="glGetVertexAttribPointervNV"/>
+ <command name="glIsProgramNV"/>
+ <command name="glLoadProgramNV"/>
+ <command name="glProgramParameter4dNV"/>
+ <command name="glProgramParameter4dvNV"/>
+ <command name="glProgramParameter4fNV"/>
+ <command name="glProgramParameter4fvNV"/>
+ <command name="glProgramParameters4dvNV"/>
+ <command name="glProgramParameters4fvNV"/>
+ <command name="glRequestResidentProgramsNV"/>
+ <command name="glTrackMatrixNV"/>
+ <command name="glVertexAttribPointerNV"/>
+ <command name="glVertexAttrib1dNV"/>
+ <command name="glVertexAttrib1dvNV"/>
+ <command name="glVertexAttrib1fNV"/>
+ <command name="glVertexAttrib1fvNV"/>
+ <command name="glVertexAttrib1sNV"/>
+ <command name="glVertexAttrib1svNV"/>
+ <command name="glVertexAttrib2dNV"/>
+ <command name="glVertexAttrib2dvNV"/>
+ <command name="glVertexAttrib2fNV"/>
+ <command name="glVertexAttrib2fvNV"/>
+ <command name="glVertexAttrib2sNV"/>
+ <command name="glVertexAttrib2svNV"/>
+ <command name="glVertexAttrib3dNV"/>
+ <command name="glVertexAttrib3dvNV"/>
+ <command name="glVertexAttrib3fNV"/>
+ <command name="glVertexAttrib3fvNV"/>
+ <command name="glVertexAttrib3sNV"/>
+ <command name="glVertexAttrib3svNV"/>
+ <command name="glVertexAttrib4dNV"/>
+ <command name="glVertexAttrib4dvNV"/>
+ <command name="glVertexAttrib4fNV"/>
+ <command name="glVertexAttrib4fvNV"/>
+ <command name="glVertexAttrib4sNV"/>
+ <command name="glVertexAttrib4svNV"/>
+ <command name="glVertexAttrib4ubNV"/>
+ <command name="glVertexAttrib4ubvNV"/>
+ <command name="glVertexAttribs1dvNV"/>
+ <command name="glVertexAttribs1fvNV"/>
+ <command name="glVertexAttribs1svNV"/>
+ <command name="glVertexAttribs2dvNV"/>
+ <command name="glVertexAttribs2fvNV"/>
+ <command name="glVertexAttribs2svNV"/>
+ <command name="glVertexAttribs3dvNV"/>
+ <command name="glVertexAttribs3fvNV"/>
+ <command name="glVertexAttribs3svNV"/>
+ <command name="glVertexAttribs4dvNV"/>
+ <command name="glVertexAttribs4fvNV"/>
+ <command name="glVertexAttribs4svNV"/>
+ <command name="glVertexAttribs4ubvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program1_1" supported="gl"/>
+ <extension name="GL_NV_vertex_program2" supported="gl"/>
+ <extension name="GL_NV_vertex_program2_option" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
+ <enum name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program3" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program4" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV"/>
+ <command name="glVertexAttribI1iEXT"/>
+ <command name="glVertexAttribI2iEXT"/>
+ <command name="glVertexAttribI3iEXT"/>
+ <command name="glVertexAttribI4iEXT"/>
+ <command name="glVertexAttribI1uiEXT"/>
+ <command name="glVertexAttribI2uiEXT"/>
+ <command name="glVertexAttribI3uiEXT"/>
+ <command name="glVertexAttribI4uiEXT"/>
+ <command name="glVertexAttribI1ivEXT"/>
+ <command name="glVertexAttribI2ivEXT"/>
+ <command name="glVertexAttribI3ivEXT"/>
+ <command name="glVertexAttribI4ivEXT"/>
+ <command name="glVertexAttribI1uivEXT"/>
+ <command name="glVertexAttribI2uivEXT"/>
+ <command name="glVertexAttribI3uivEXT"/>
+ <command name="glVertexAttribI4uivEXT"/>
+ <command name="glVertexAttribI4bvEXT"/>
+ <command name="glVertexAttribI4svEXT"/>
+ <command name="glVertexAttribI4ubvEXT"/>
+ <command name="glVertexAttribI4usvEXT"/>
+ <command name="glVertexAttribIPointerEXT"/>
+ <command name="glGetVertexAttribIivEXT"/>
+ <command name="glGetVertexAttribIuivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_video_capture" supported="gl">
+ <require>
+ <enum name="GL_VIDEO_BUFFER_NV"/>
+ <enum name="GL_VIDEO_BUFFER_BINDING_NV"/>
+ <enum name="GL_FIELD_UPPER_NV"/>
+ <enum name="GL_FIELD_LOWER_NV"/>
+ <enum name="GL_NUM_VIDEO_CAPTURE_STREAMS_NV"/>
+ <enum name="GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV"/>
+ <enum name="GL_LAST_VIDEO_CAPTURE_STATUS_NV"/>
+ <enum name="GL_VIDEO_BUFFER_PITCH_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_MATRIX_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_MAX_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_MIN_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_OFFSET_NV"/>
+ <enum name="GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV"/>
+ <enum name="GL_PARTIAL_SUCCESS_NV"/>
+ <enum name="GL_SUCCESS_NV"/>
+ <enum name="GL_FAILURE_NV"/>
+ <enum name="GL_YCBYCR8_422_NV"/>
+ <enum name="GL_YCBAYCR8A_4224_NV"/>
+ <enum name="GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV"/>
+ <enum name="GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV"/>
+ <enum name="GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV"/>
+ <enum name="GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV"/>
+ <enum name="GL_Z4Y12Z4CB12Z4CR12_444_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FRAME_WIDTH_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV"/>
+ <command name="glBeginVideoCaptureNV"/>
+ <command name="glBindVideoCaptureStreamBufferNV"/>
+ <command name="glBindVideoCaptureStreamTextureNV"/>
+ <command name="glEndVideoCaptureNV"/>
+ <command name="glGetVideoCaptureivNV"/>
+ <command name="glGetVideoCaptureStreamivNV"/>
+ <command name="glGetVideoCaptureStreamfvNV"/>
+ <command name="glGetVideoCaptureStreamdvNV"/>
+ <command name="glVideoCaptureNV"/>
+ <command name="glVideoCaptureStreamParameterivNV"/>
+ <command name="glVideoCaptureStreamParameterfvNV"/>
+ <command name="glVideoCaptureStreamParameterdvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_EGL_image" supported="gles1|gles2">
+ <require>
+ <type name="GLeglImageOES"/>
+ <command name="glEGLImageTargetTexture2DOES"/>
+ <command name="glEGLImageTargetRenderbufferStorageOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_EGL_image_external" supported="gles1|gles2">
+ <require>
+ <type name="GLeglImageOES"/>
+ <enum name="GL_TEXTURE_EXTERNAL_OES"/>
+ <enum name="GL_TEXTURE_BINDING_EXTERNAL_OES"/>
+ <enum name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES"/>
+ </require>
+ <require api="gles2">
+ <enum name="GL_SAMPLER_EXTERNAL_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_blend_equation_separate" supported="gles1">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB_OES"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA_OES"/>
+ <command name="glBlendEquationSeparateOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_blend_func_separate" supported="gles1">
+ <require>
+ <enum name="GL_BLEND_DST_RGB_OES"/>
+ <enum name="GL_BLEND_SRC_RGB_OES"/>
+ <enum name="GL_BLEND_DST_ALPHA_OES"/>
+ <enum name="GL_BLEND_SRC_ALPHA_OES"/>
+ <command name="glBlendFuncSeparateOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_blend_subtract" supported="gles1">
+ <require>
+ <enum name="GL_BLEND_EQUATION_OES"/>
+ <enum name="GL_FUNC_ADD_OES"/>
+ <enum name="GL_FUNC_SUBTRACT_OES"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT_OES"/>
+ <command name="glBlendEquationOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_byte_coordinates" supported="gl|gles1">
+ <require>
+ <type name="GLbyte"/>
+ <enum name="GL_BYTE"/>
+ </require>
+ <require api="gl" comment="Immediate-mode entry points don't exist in ES 1.x">
+ <command name="glMultiTexCoord1bOES"/>
+ <command name="glMultiTexCoord1bvOES"/>
+ <command name="glMultiTexCoord2bOES"/>
+ <command name="glMultiTexCoord2bvOES"/>
+ <command name="glMultiTexCoord3bOES"/>
+ <command name="glMultiTexCoord3bvOES"/>
+ <command name="glMultiTexCoord4bOES"/>
+ <command name="glMultiTexCoord4bvOES"/>
+ <command name="glTexCoord1bOES"/>
+ <command name="glTexCoord1bvOES"/>
+ <command name="glTexCoord2bOES"/>
+ <command name="glTexCoord2bvOES"/>
+ <command name="glTexCoord3bOES"/>
+ <command name="glTexCoord3bvOES"/>
+ <command name="glTexCoord4bOES"/>
+ <command name="glTexCoord4bvOES"/>
+ <command name="glVertex2bOES"/>
+ <command name="glVertex2bvOES"/>
+ <command name="glVertex3bOES"/>
+ <command name="glVertex3bvOES"/>
+ <command name="glVertex4bOES"/>
+ <command name="glVertex4bvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_compressed_ETC1_RGB8_sub_texture" supported="gles1|gles2"/>
+ <extension name="GL_OES_compressed_ETC1_RGB8_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_ETC1_RGB8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_compressed_paletted_texture" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_PALETTE4_RGB8_OES"/>
+ <enum name="GL_PALETTE4_RGBA8_OES"/>
+ <enum name="GL_PALETTE4_R5_G6_B5_OES"/>
+ <enum name="GL_PALETTE4_RGBA4_OES"/>
+ <enum name="GL_PALETTE4_RGB5_A1_OES"/>
+ <enum name="GL_PALETTE8_RGB8_OES"/>
+ <enum name="GL_PALETTE8_RGBA8_OES"/>
+ <enum name="GL_PALETTE8_R5_G6_B5_OES"/>
+ <enum name="GL_PALETTE8_RGBA4_OES"/>
+ <enum name="GL_PALETTE8_RGB5_A1_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_depth24" supported="gles1|gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT24_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_depth32" supported="gles1|gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT32_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_depth_texture" supported="gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_draw_texture" supported="gles1">
+ <require>
+ <enum name="GL_TEXTURE_CROP_RECT_OES"/>
+ <command name="glDrawTexsOES"/>
+ <command name="glDrawTexiOES"/>
+ <command name="glDrawTexxOES"/>
+ <command name="glDrawTexsvOES"/>
+ <command name="glDrawTexivOES"/>
+ <command name="glDrawTexxvOES"/>
+ <command name="glDrawTexfOES"/>
+ <command name="glDrawTexfvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_element_index_uint" supported="gles1|gles2">
+ <require>
+ <enum name="GL_UNSIGNED_INT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_extended_matrix_palette" supported="gles1"/>
+ <extension name="GL_OES_fbo_render_mipmap" supported="gles1|gles2"/>
+ <extension name="GL_OES_fixed_point" supported="gl|gles1">
+ <require>
+ <enum name="GL_FIXED_OES"/>
+ <command name="glAlphaFuncxOES"/>
+ <command name="glClearColorxOES"/>
+ <command name="glClearDepthxOES"/>
+ <command name="glClipPlanexOES"/>
+ <command name="glColor4xOES"/>
+ <command name="glDepthRangexOES"/>
+ <command name="glFogxOES"/>
+ <command name="glFogxvOES"/>
+ <command name="glFrustumxOES"/>
+ <command name="glGetClipPlanexOES"/>
+ <command name="glGetFixedvOES"/>
+ <command name="glGetTexEnvxvOES"/>
+ <command name="glGetTexParameterxvOES"/>
+ <command name="glLightModelxOES"/>
+ <command name="glLightModelxvOES"/>
+ <command name="glLightxOES"/>
+ <command name="glLightxvOES"/>
+ <command name="glLineWidthxOES"/>
+ <command name="glLoadMatrixxOES"/>
+ <command name="glMaterialxOES"/>
+ <command name="glMaterialxvOES"/>
+ <command name="glMultMatrixxOES"/>
+ <command name="glMultiTexCoord4xOES"/>
+ <command name="glNormal3xOES"/>
+ <command name="glOrthoxOES"/>
+ <command name="glPointParameterxvOES"/>
+ <command name="glPointSizexOES"/>
+ <command name="glPolygonOffsetxOES"/>
+ <command name="glRotatexOES"/>
+ <command name="glSampleCoverageOES"/>
+ <command name="glScalexOES"/>
+ <command name="glTexEnvxOES"/>
+ <command name="glTexEnvxvOES"/>
+ <command name="glTexParameterxOES"/>
+ <command name="glTexParameterxvOES"/>
+ <command name="glTranslatexOES"/>
+ </require>
+ <require api="gles1" comment="Entry points not in the extension spec, but in the Khronos glext.h. Included for backward compatibility.">
+ <command name="glGetLightxvOES"/>
+ <command name="glGetMaterialxvOES"/>
+ <command name="glPointParameterxOES"/>
+ <command name="glSampleCoveragexOES"/>
+ </require>
+ <require api="gl" comment="Entry points in the extension spec, but not the Khronos glext.h. Correspond to GL-only features it's unlikely were ever implemented against ES 1.x.">
+ <command name="glAccumxOES"/>
+ <command name="glBitmapxOES"/>
+ <command name="glBlendColorxOES"/>
+ <command name="glClearAccumxOES"/>
+ <command name="glColor3xOES"/>
+ <command name="glColor3xvOES"/>
+ <command name="glColor4xvOES"/>
+ <command name="glConvolutionParameterxOES"/>
+ <command name="glConvolutionParameterxvOES"/>
+ <command name="glEvalCoord1xOES"/>
+ <command name="glEvalCoord1xvOES"/>
+ <command name="glEvalCoord2xOES"/>
+ <command name="glEvalCoord2xvOES"/>
+ <command name="glFeedbackBufferxOES"/>
+ <command name="glGetConvolutionParameterxvOES"/>
+ <command name="glGetHistogramParameterxvOES"/>
+ <command name="glGetLightxOES"/>
+ <command name="glGetMapxvOES"/>
+ <command name="glGetMaterialxOES"/>
+ <command name="glGetPixelMapxv"/>
+ <command name="glGetTexGenxvOES"/>
+ <command name="glGetTexLevelParameterxvOES"/>
+ <command name="glIndexxOES"/>
+ <command name="glIndexxvOES"/>
+ <command name="glLoadTransposeMatrixxOES"/>
+ <command name="glMap1xOES"/>
+ <command name="glMap2xOES"/>
+ <command name="glMapGrid1xOES"/>
+ <command name="glMapGrid2xOES"/>
+ <command name="glMultTransposeMatrixxOES"/>
+ <command name="glMultiTexCoord1xOES"/>
+ <command name="glMultiTexCoord1xvOES"/>
+ <command name="glMultiTexCoord2xOES"/>
+ <command name="glMultiTexCoord2xvOES"/>
+ <command name="glMultiTexCoord3xOES"/>
+ <command name="glMultiTexCoord3xvOES"/>
+ <command name="glMultiTexCoord4xvOES"/>
+ <command name="glNormal3xvOES"/>
+ <command name="glPassThroughxOES"/>
+ <command name="glPixelMapx"/>
+ <command name="glPixelStorex"/>
+ <command name="glPixelTransferxOES"/>
+ <command name="glPixelZoomxOES"/>
+ <command name="glPrioritizeTexturesxOES"/>
+ <command name="glRasterPos2xOES"/>
+ <command name="glRasterPos2xvOES"/>
+ <command name="glRasterPos3xOES"/>
+ <command name="glRasterPos3xvOES"/>
+ <command name="glRasterPos4xOES"/>
+ <command name="glRasterPos4xvOES"/>
+ <command name="glRectxOES"/>
+ <command name="glRectxvOES"/>
+ <command name="glTexCoord1xOES"/>
+ <command name="glTexCoord1xvOES"/>
+ <command name="glTexCoord2xOES"/>
+ <command name="glTexCoord2xvOES"/>
+ <command name="glTexCoord3xOES"/>
+ <command name="glTexCoord3xvOES"/>
+ <command name="glTexCoord4xOES"/>
+ <command name="glTexCoord4xvOES"/>
+ <command name="glTexGenxOES"/>
+ <command name="glTexGenxvOES"/>
+ <command name="glVertex2xOES"/>
+ <command name="glVertex2xvOES"/>
+ <command name="glVertex3xOES"/>
+ <command name="glVertex3xvOES"/>
+ <command name="glVertex4xOES"/>
+ <command name="glVertex4xvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_fragment_precision_high" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_framebuffer_object" supported="gles1">
+ <require>
+ <enum name="GL_NONE_OES"/>
+ <enum name="GL_FRAMEBUFFER_OES"/>
+ <enum name="GL_RENDERBUFFER_OES"/>
+ <enum name="GL_RGBA4_OES"/>
+ <enum name="GL_RGB5_A1_OES"/>
+ <enum name="GL_RGB565_OES"/>
+ <enum name="GL_DEPTH_COMPONENT16_OES"/>
+ <enum name="GL_RENDERBUFFER_WIDTH_OES"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT_OES"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES"/>
+ <enum name="GL_COLOR_ATTACHMENT0_OES"/>
+ <enum name="GL_DEPTH_ATTACHMENT_OES"/>
+ <enum name="GL_STENCIL_ATTACHMENT_OES"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED_OES"/>
+ <enum name="GL_FRAMEBUFFER_BINDING_OES"/>
+ <enum name="GL_RENDERBUFFER_BINDING_OES"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE_OES"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+ <command name="glIsRenderbufferOES"/>
+ <command name="glBindRenderbufferOES"/>
+ <command name="glDeleteRenderbuffersOES"/>
+ <command name="glGenRenderbuffersOES"/>
+ <command name="glRenderbufferStorageOES"/>
+ <command name="glGetRenderbufferParameterivOES"/>
+ <command name="glIsFramebufferOES"/>
+ <command name="glBindFramebufferOES"/>
+ <command name="glDeleteFramebuffersOES"/>
+ <command name="glGenFramebuffersOES"/>
+ <command name="glCheckFramebufferStatusOES"/>
+ <command name="glFramebufferRenderbufferOES"/>
+ <command name="glFramebufferTexture2DOES"/>
+ <command name="glGetFramebufferAttachmentParameterivOES"/>
+ <command name="glGenerateMipmapOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_get_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_PROGRAM_BINARY_LENGTH_OES"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS_OES"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS_OES"/>
+ <command name="glGetProgramBinaryOES"/>
+ <command name="glProgramBinaryOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_mapbuffer" supported="gles1|gles2">
+ <require>
+ <enum name="GL_WRITE_ONLY_OES"/>
+ <enum name="GL_BUFFER_ACCESS_OES"/>
+ <enum name="GL_BUFFER_MAPPED_OES"/>
+ <enum name="GL_BUFFER_MAP_POINTER_OES"/>
+ <command name="glMapBufferOES"/>
+ <command name="glUnmapBufferOES"/>
+ <command name="glGetBufferPointervOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_matrix_get" supported="gles1">
+ <require>
+ <enum name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_matrix_palette" supported="gles1">
+ <require>
+ <enum name="GL_MAX_VERTEX_UNITS_OES"/>
+ <enum name="GL_MAX_PALETTE_MATRICES_OES"/>
+ <enum name="GL_MATRIX_PALETTE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_OES"/>
+ <enum name="GL_CURRENT_PALETTE_MATRIX_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_SIZE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_TYPE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_POINTER_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_SIZE_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_TYPE_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_STRIDE_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_POINTER_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES"/>
+ <command name="glCurrentPaletteMatrixOES"/>
+ <command name="glLoadPaletteFromModelViewMatrixOES"/>
+ <command name="glMatrixIndexPointerOES"/>
+ <command name="glWeightPointerOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_packed_depth_stencil" supported="gles1|gles2">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_OES"/>
+ <enum name="GL_UNSIGNED_INT_24_8_OES"/>
+ <enum name="GL_DEPTH24_STENCIL8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_point_size_array" supported="gles1">
+ <require>
+ <enum name="GL_POINT_SIZE_ARRAY_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_TYPE_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_STRIDE_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_POINTER_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES"/>
+ <command name="glPointSizePointerOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_point_sprite" supported="gles1">
+ <require>
+ <enum name="GL_POINT_SPRITE_OES"/>
+ <enum name="GL_COORD_REPLACE_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_query_matrix" supported="gl|gles1">
+ <require>
+ <command name="glQueryMatrixxOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_read_format" supported="gl|gles1">
+ <require>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_required_internalformat" supported="gles1|gles2">
+ <require>
+ <enum name="GL_ALPHA8_OES"/>
+ <enum name="GL_DEPTH_COMPONENT16_OES"/>
+ <enum name="GL_DEPTH_COMPONENT24_OES"/>
+ <enum name="GL_DEPTH24_STENCIL8_OES"/>
+ <enum name="GL_DEPTH_COMPONENT32_OES"/>
+ <enum name="GL_LUMINANCE4_ALPHA4_OES"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_OES"/>
+ <enum name="GL_LUMINANCE8_OES"/>
+ <enum name="GL_RGBA4_OES"/>
+ <enum name="GL_RGB5_A1_OES"/>
+ <enum name="GL_RGB565_OES"/>
+ <enum name="GL_RGB8_OES"/>
+ <enum name="GL_RGBA8_OES"/>
+ <enum name="GL_RGB10_EXT"/>
+ <enum name="GL_RGB10_A2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_rgb8_rgba8" supported="gles1|gles2">
+ <require>
+ <enum name="GL_RGB8_OES"/>
+ <enum name="GL_RGBA8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_sample_shading" supported="gles2">
+ <require>
+ <command name="glMinSampleShadingOES"/>
+ <enum name="GL_SAMPLE_SHADING_OES"/>
+ <enum name="GL_MIN_SAMPLE_SHADING_VALUE_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_sample_variables" supported="gles2"/>
+ <extension name="GL_OES_shader_image_atomic" supported="gles2"/>
+ <extension name="GL_OES_shader_multisample_interpolation" supported="gles2">
+ <require>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES"/>
+ <enum name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_single_precision" supported="gl|gles1">
+ <require>
+ <command name="glClearDepthfOES"/>
+ <command name="glClipPlanefOES"/>
+ <command name="glDepthRangefOES"/>
+ <command name="glFrustumfOES"/>
+ <command name="glGetClipPlanefOES"/>
+ <command name="glOrthofOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_standard_derivatives" supported="gles2">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil1" supported="gles1|gles2">
+ <require>
+ <enum name="GL_STENCIL_INDEX1_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil4" supported="gles1|gles2">
+ <require>
+ <enum name="GL_STENCIL_INDEX4_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil8" supported="gles1">
+ <require>
+ <enum name="GL_STENCIL_INDEX8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil_wrap" supported="gles1">
+ <require>
+ <enum name="GL_INCR_WRAP_OES"/>
+ <enum name="GL_DECR_WRAP_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_surfaceless_context" supported="gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_3D" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_WRAP_R_OES"/>
+ <enum name="GL_TEXTURE_3D_OES"/>
+ <enum name="GL_TEXTURE_BINDING_3D_OES"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE_OES"/>
+ <enum name="GL_SAMPLER_3D_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES"/>
+ <command name="glTexImage3DOES"/>
+ <command name="glTexSubImage3DOES"/>
+ <command name="glCopyTexSubImage3DOES"/>
+ <command name="glCompressedTexImage3DOES"/>
+ <command name="glCompressedTexSubImage3DOES"/>
+ <command name="glFramebufferTexture3DOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_compression_astc" supported="gles2" comment="API is identical to GL_KHR_texture_compression_astc_hdr extension">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_3x3x3_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x3x3_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4x3_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4x4_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4x4_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5x4_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5x5_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5x5_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6x5_OES"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6x6_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_cube_map" supported="gles1">
+ <require>
+ <enum name="GL_NORMAL_MAP_OES"/>
+ <enum name="GL_REFLECTION_MAP_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_OES"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES"/>
+ <enum name="GL_TEXTURE_GEN_MODE_OES"/>
+ <enum name="GL_TEXTURE_GEN_STR_OES"/>
+ <command name="glTexGenfOES"/>
+ <command name="glTexGenfvOES"/>
+ <command name="glTexGeniOES"/>
+ <command name="glTexGenivOES"/>
+ <command name="glTexGenxOES"/>
+ <command name="glTexGenxvOES"/>
+ <command name="glGetTexGenfvOES"/>
+ <command name="glGetTexGenivOES"/>
+ <command name="glGetTexGenxvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_env_crossbar" supported="gles1"/>
+ <extension name="GL_OES_texture_float" supported="gles2">
+ <require>
+ <enum name="GL_FLOAT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_float_linear" supported="gles2"/>
+ <extension name="GL_OES_texture_half_float" supported="gles2">
+ <require>
+ <enum name="GL_HALF_FLOAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_half_float_linear" supported="gles2"/>
+ <extension name="GL_OES_texture_mirrored_repeat" supported="gles1">
+ <require>
+ <enum name="GL_MIRRORED_REPEAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_npot" supported="gles2"/>
+ <extension name="GL_OES_texture_stencil8" supported="gles2">
+ <require>
+ <enum name="GL_STENCIL_INDEX_OES"/>
+ <enum name="GL_STENCIL_INDEX8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_storage_multisample_2d_array" supported="gles2">
+ <require>
+ <command name="glTexStorage3DMultisampleOES"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_vertex_array_object" supported="gles1|gles2">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_BINDING_OES"/>
+ <command name="glBindVertexArrayOES"/>
+ <command name="glDeleteVertexArraysOES"/>
+ <command name="glGenVertexArraysOES"/>
+ <command name="glIsVertexArrayOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_vertex_half_float" supported="gles2">
+ <require>
+ <enum name="GL_HALF_FLOAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_vertex_type_10_10_10_2" supported="gles2">
+ <require>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
+ <enum name="GL_INT_10_10_10_2_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OML_interlace" supported="gl">
+ <require>
+ <enum name="GL_INTERLACE_OML"/>
+ <enum name="GL_INTERLACE_READ_OML"/>
+ </require>
+ </extension>
+ <extension name="GL_OML_resample" supported="gl">
+ <require>
+ <enum name="GL_PACK_RESAMPLE_OML"/>
+ <enum name="GL_UNPACK_RESAMPLE_OML"/>
+ <enum name="GL_RESAMPLE_REPLICATE_OML"/>
+ <enum name="GL_RESAMPLE_ZERO_FILL_OML"/>
+ <enum name="GL_RESAMPLE_AVERAGE_OML"/>
+ <enum name="GL_RESAMPLE_DECIMATE_OML"/>
+ </require>
+ </extension>
+ <extension name="GL_OML_subsample" supported="gl">
+ <require>
+ <enum name="GL_FORMAT_SUBSAMPLE_24_24_OML"/>
+ <enum name="GL_FORMAT_SUBSAMPLE_244_244_OML"/>
+ </require>
+ </extension>
+ <extension name="GL_PGI_misc_hints" supported="gl">
+ <require>
+ <enum name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
+ <enum name="GL_CONSERVE_MEMORY_HINT_PGI"/>
+ <enum name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_HANDLE_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
+ <enum name="GL_ALWAYS_FAST_HINT_PGI"/>
+ <enum name="GL_ALWAYS_SOFT_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
+ <enum name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
+ <enum name="GL_STRICT_LIGHTING_HINT_PGI"/>
+ <enum name="GL_STRICT_SCISSOR_HINT_PGI"/>
+ <enum name="GL_FULL_STIPPLE_HINT_PGI"/>
+ <enum name="GL_CLIP_NEAR_HINT_PGI"/>
+ <enum name="GL_CLIP_FAR_HINT_PGI"/>
+ <enum name="GL_WIDE_LINE_HINT_PGI"/>
+ <enum name="GL_BACK_NORMALS_HINT_PGI"/>
+ <command name="glHintPGI"/>
+ </require>
+ </extension>
+ <extension name="GL_PGI_vertex_hints" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_DATA_HINT_PGI"/>
+ <enum name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
+ <enum name="GL_MATERIAL_SIDE_HINT_PGI"/>
+ <enum name="GL_MAX_VERTEX_HINT_PGI"/>
+ <enum name="GL_COLOR3_BIT_PGI"/>
+ <enum name="GL_COLOR4_BIT_PGI"/>
+ <enum name="GL_EDGEFLAG_BIT_PGI"/>
+ <enum name="GL_INDEX_BIT_PGI"/>
+ <enum name="GL_MAT_AMBIENT_BIT_PGI"/>
+ <enum name="GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI"/>
+ <enum name="GL_MAT_DIFFUSE_BIT_PGI"/>
+ <enum name="GL_MAT_EMISSION_BIT_PGI"/>
+ <enum name="GL_MAT_COLOR_INDEXES_BIT_PGI"/>
+ <enum name="GL_MAT_SHININESS_BIT_PGI"/>
+ <enum name="GL_MAT_SPECULAR_BIT_PGI"/>
+ <enum name="GL_NORMAL_BIT_PGI"/>
+ <enum name="GL_TEXCOORD1_BIT_PGI"/>
+ <enum name="GL_TEXCOORD2_BIT_PGI"/>
+ <enum name="GL_TEXCOORD3_BIT_PGI"/>
+ <enum name="GL_TEXCOORD4_BIT_PGI"/>
+ <enum name="GL_VERTEX23_BIT_PGI"/>
+ <enum name="GL_VERTEX4_BIT_PGI"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_alpha_test" supported="gles2">
+ <require>
+ <enum name="GL_ALPHA_TEST_QCOM"/>
+ <enum name="GL_ALPHA_TEST_FUNC_QCOM"/>
+ <enum name="GL_ALPHA_TEST_REF_QCOM"/>
+ <command name="glAlphaFuncQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_binning_control" supported="gles2">
+ <require>
+ <enum name="GL_BINNING_CONTROL_HINT_QCOM"/>
+ <enum name="GL_CPU_OPTIMIZED_QCOM"/>
+ <enum name="GL_GPU_OPTIMIZED_QCOM"/>
+ <enum name="GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_driver_control" supported="gles1|gles2">
+ <require>
+ <command name="glGetDriverControlsQCOM"/>
+ <command name="glGetDriverControlStringQCOM"/>
+ <command name="glEnableDriverControlQCOM"/>
+ <command name="glDisableDriverControlQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_extended_get" supported="gles1|gles2">
+ <require>
+ <enum name="GL_TEXTURE_WIDTH_QCOM"/>
+ <enum name="GL_TEXTURE_HEIGHT_QCOM"/>
+ <enum name="GL_TEXTURE_DEPTH_QCOM"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT_QCOM"/>
+ <enum name="GL_TEXTURE_FORMAT_QCOM"/>
+ <enum name="GL_TEXTURE_TYPE_QCOM"/>
+ <enum name="GL_TEXTURE_IMAGE_VALID_QCOM"/>
+ <enum name="GL_TEXTURE_NUM_LEVELS_QCOM"/>
+ <enum name="GL_TEXTURE_TARGET_QCOM"/>
+ <enum name="GL_TEXTURE_OBJECT_VALID_QCOM"/>
+ <enum name="GL_STATE_RESTORE"/>
+ <command name="glExtGetTexturesQCOM"/>
+ <command name="glExtGetBuffersQCOM"/>
+ <command name="glExtGetRenderbuffersQCOM"/>
+ <command name="glExtGetFramebuffersQCOM"/>
+ <command name="glExtGetTexLevelParameterivQCOM"/>
+ <command name="glExtTexObjectStateOverrideiQCOM"/>
+ <command name="glExtGetTexSubImageQCOM"/>
+ <command name="glExtGetBufferPointervQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_extended_get2" supported="gles1|gles2">
+ <require>
+ <command name="glExtGetShadersQCOM"/>
+ <command name="glExtGetProgramsQCOM"/>
+ <command name="glExtIsProgramBinaryQCOM"/>
+ <command name="glExtGetProgramBinarySourceQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_perfmon_global_mode" supported="gles1|gles2">
+ <require>
+ <enum name="GL_PERFMON_GLOBAL_MODE_QCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_tiled_rendering" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COLOR_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT7_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT7_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT7_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM"/>
+ <command name="glStartTilingQCOM"/>
+ <command name="glEndTilingQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_writeonly_rendering" supported="gles1|gles2">
+ <require>
+ <enum name="GL_WRITEONLY_RENDERING_QCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_REND_screen_coordinates" supported="gl">
+ <require>
+ <enum name="GL_SCREEN_COORDINATES_REND"/>
+ <enum name="GL_INVERTED_SCREEN_W_REND"/>
+ </require>
+ </extension>
+ <extension name="GL_S3_s3tc" supported="gl">
+ <require>
+ <enum name="GL_RGB_S3TC"/>
+ <enum name="GL_RGB4_S3TC"/>
+ <enum name="GL_RGBA_S3TC"/>
+ <enum name="GL_RGBA4_S3TC"/>
+ <enum name="GL_RGBA_DXT5_S3TC"/>
+ <enum name="GL_RGBA4_DXT5_S3TC"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_detail_texture" supported="gl">
+ <require>
+ <enum name="GL_DETAIL_TEXTURE_2D_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
+ <command name="glDetailTexFuncSGIS"/>
+ <command name="glGetDetailTexFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_fog_function" supported="gl">
+ <require>
+ <enum name="GL_FOG_FUNC_SGIS"/>
+ <enum name="GL_FOG_FUNC_POINTS_SGIS"/>
+ <enum name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
+ <command name="glFogFuncSGIS"/>
+ <command name="glGetFogFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_generate_mipmap" supported="gl">
+ <require>
+ <enum name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_SGIS"/>
+ <enum name="GL_1PASS_SGIS"/>
+ <enum name="GL_2PASS_0_SGIS"/>
+ <enum name="GL_2PASS_1_SGIS"/>
+ <enum name="GL_4PASS_0_SGIS"/>
+ <enum name="GL_4PASS_1_SGIS"/>
+ <enum name="GL_4PASS_2_SGIS"/>
+ <enum name="GL_4PASS_3_SGIS"/>
+ <enum name="GL_SAMPLE_BUFFERS_SGIS"/>
+ <enum name="GL_SAMPLES_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+ <enum name="GL_SAMPLE_PATTERN_SGIS"/>
+ <command name="glSampleMaskSGIS"/>
+ <command name="glSamplePatternSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_pixel_texture" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
+ <enum name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+ <enum name="GL_PIXEL_GROUP_COLOR_SGIS"/>
+ <command name="glPixelTexGenParameteriSGIS"/>
+ <command name="glPixelTexGenParameterivSGIS"/>
+ <command name="glPixelTexGenParameterfSGIS"/>
+ <command name="glPixelTexGenParameterfvSGIS"/>
+ <command name="glGetPixelTexGenParameterivSGIS"/>
+ <command name="glGetPixelTexGenParameterfvSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_point_line_texgen" supported="gl">
+ <require>
+ <enum name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_EYE_POINT_SGIS"/>
+ <enum name="GL_OBJECT_POINT_SGIS"/>
+ <enum name="GL_EYE_LINE_SGIS"/>
+ <enum name="GL_OBJECT_LINE_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_point_parameters" supported="gl">
+ <require>
+ <enum name="GL_POINT_SIZE_MIN_SGIS"/>
+ <enum name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <command name="glPointParameterfSGIS"/>
+ <command name="glPointParameterfvSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_sharpen_texture" supported="gl">
+ <require>
+ <enum name="GL_LINEAR_SHARPEN_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
+ <enum name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+ <command name="glSharpenTexFuncSGIS"/>
+ <command name="glGetSharpenTexFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture4D" supported="gl">
+ <require>
+ <enum name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_PROXY_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_4DSIZE_SGIS"/>
+ <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
+ <enum name="GL_TEXTURE_4D_BINDING_SGIS"/>
+ <command name="glTexImage4DSGIS"/>
+ <command name="glTexSubImage4DSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_border_clamp" supported="gl">
+ <require>
+ <enum name="GL_CLAMP_TO_BORDER_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_color_mask" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COLOR_WRITEMASK_SGIS"/>
+ <command name="glTextureColorMaskSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_edge_clamp" supported="gl">
+ <require>
+ <enum name="GL_CLAMP_TO_EDGE_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_filter4" supported="gl">
+ <require>
+ <enum name="GL_FILTER4_SGIS"/>
+ <enum name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
+ <command name="glGetTexFilterFuncSGIS"/>
+ <command name="glTexFilterFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_lod" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_select" supported="gl">
+ <require>
+ <enum name="GL_DUAL_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_ALPHA8_SGIS"/>
+ <enum name="GL_DUAL_ALPHA12_SGIS"/>
+ <enum name="GL_DUAL_ALPHA16_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE8_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE12_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE16_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY4_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY8_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY12_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY16_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
+ <enum name="GL_QUAD_ALPHA4_SGIS"/>
+ <enum name="GL_QUAD_ALPHA8_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE4_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE8_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY4_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY8_SGIS"/>
+ <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_async" supported="gl">
+ <require>
+ <enum name="GL_ASYNC_MARKER_SGIX"/>
+ <command name="glAsyncMarkerSGIX"/>
+ <command name="glFinishAsyncSGIX"/>
+ <command name="glPollAsyncSGIX"/>
+ <command name="glGenAsyncMarkersSGIX"/>
+ <command name="glDeleteAsyncMarkersSGIX"/>
+ <command name="glIsAsyncMarkerSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_async_histogram" supported="gl">
+ <require>
+ <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_async_pixel" supported="gl">
+ <require>
+ <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_blend_alpha_minmax" supported="gl">
+ <require>
+ <enum name="GL_ALPHA_MIN_SGIX"/>
+ <enum name="GL_ALPHA_MAX_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_calligraphic_fragment" supported="gl">
+ <require>
+ <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_clipmap" supported="gl">
+ <require>
+ <enum name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
+ <enum name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_convolution_accuracy" supported="gl">
+ <require>
+ <enum name="GL_CONVOLUTION_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_depth_pass_instrument" supported="gl"/>
+ <extension name="GL_SGIX_depth_texture" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT16_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT24_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT32_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_flush_raster" supported="gl">
+ <require>
+ <command name="glFlushRasterSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_fog_offset" supported="gl">
+ <require>
+ <enum name="GL_FOG_OFFSET_SGIX"/>
+ <enum name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_fragment_lighting" supported="gl" comment="Incomplete extension">
+ <require>
+ <enum name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
+ <enum name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
+ <enum name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+ <enum name="GL_CURRENT_RASTER_NORMAL_SGIX"/>
+ <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <command name="glFragmentColorMaterialSGIX"/>
+ <command name="glFragmentLightfSGIX"/>
+ <command name="glFragmentLightfvSGIX"/>
+ <command name="glFragmentLightiSGIX"/>
+ <command name="glFragmentLightivSGIX"/>
+ <command name="glFragmentLightModelfSGIX"/>
+ <command name="glFragmentLightModelfvSGIX"/>
+ <command name="glFragmentLightModeliSGIX"/>
+ <command name="glFragmentLightModelivSGIX"/>
+ <command name="glFragmentMaterialfSGIX"/>
+ <command name="glFragmentMaterialfvSGIX"/>
+ <command name="glFragmentMaterialiSGIX"/>
+ <command name="glFragmentMaterialivSGIX"/>
+ <command name="glGetFragmentLightfvSGIX"/>
+ <command name="glGetFragmentLightivSGIX"/>
+ <command name="glGetFragmentMaterialfvSGIX"/>
+ <command name="glGetFragmentMaterialivSGIX"/>
+ <command name="glLightEnviSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_framezoom" supported="gl">
+ <require>
+ <enum name="GL_FRAMEZOOM_SGIX"/>
+ <enum name="GL_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
+ <command name="glFrameZoomSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_igloo_interface" supported="gl">
+ <require>
+ <command name="glIglooInterfaceSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_instruments" supported="gl">
+ <require>
+ <enum name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
+ <enum name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
+ <command name="glGetInstrumentsSGIX"/>
+ <command name="glInstrumentsBufferSGIX"/>
+ <command name="glPollInstrumentsSGIX"/>
+ <command name="glReadInstrumentsSGIX"/>
+ <command name="glStartInstrumentsSGIX"/>
+ <command name="glStopInstrumentsSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_interlace" supported="gl">
+ <require>
+ <enum name="GL_INTERLACE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ir_instrument1" supported="gl">
+ <require>
+ <enum name="GL_IR_INSTRUMENT1_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_list_priority" supported="gl">
+ <require>
+ <enum name="GL_LIST_PRIORITY_SGIX"/>
+ <command name="glGetListParameterfvSGIX"/>
+ <command name="glGetListParameterivSGIX"/>
+ <command name="glListParameterfSGIX"/>
+ <command name="glListParameterfvSGIX"/>
+ <command name="glListParameteriSGIX"/>
+ <command name="glListParameterivSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_pixel_texture" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
+ <command name="glPixelTexGenSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_pixel_tiles" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_polynomial_ffd" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_DEFORMATION_BIT_SGIX"/>
+ <enum name="GL_GEOMETRY_DEFORMATION_BIT_SGIX"/>
+ <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ <enum name="GL_DEFORMATIONS_MASK_SGIX"/>
+ <enum name="GL_MAX_DEFORMATION_ORDER_SGIX"/>
+ <command name="glDeformationMap3dSGIX"/>
+ <command name="glDeformationMap3fSGIX"/>
+ <command name="glDeformSGIX"/>
+ <command name="glLoadIdentityDeformationMapSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_reference_plane" supported="gl">
+ <require>
+ <enum name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
+ <command name="glReferencePlaneSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_resample" supported="gl">
+ <require>
+ <enum name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum name="GL_RESAMPLE_REPLICATE_SGIX"/>
+ <enum name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
+ <enum name="GL_RESAMPLE_DECIMATE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_scalebias_hint" supported="gl">
+ <require>
+ <enum name="GL_SCALEBIAS_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_shadow" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
+ <enum name="GL_TEXTURE_LEQUAL_R_SGIX"/>
+ <enum name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_shadow_ambient" supported="gl">
+ <require>
+ <enum name="GL_SHADOW_AMBIENT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_sprite" supported="gl">
+ <require>
+ <enum name="GL_SPRITE_SGIX"/>
+ <enum name="GL_SPRITE_MODE_SGIX"/>
+ <enum name="GL_SPRITE_AXIS_SGIX"/>
+ <enum name="GL_SPRITE_TRANSLATION_SGIX"/>
+ <enum name="GL_SPRITE_AXIAL_SGIX"/>
+ <enum name="GL_SPRITE_OBJECT_ALIGNED_SGIX"/>
+ <enum name="GL_SPRITE_EYE_ALIGNED_SGIX"/>
+ <command name="glSpriteParameterfSGIX"/>
+ <command name="glSpriteParameterfvSGIX"/>
+ <command name="glSpriteParameteriSGIX"/>
+ <command name="glSpriteParameterivSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_subsample" supported="gl">
+ <require>
+ <enum name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_tag_sample_buffer" supported="gl">
+ <require>
+ <command name="glTagSampleBufferSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_add_env" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_ENV_BIAS_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_coordinate_clamp" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_lod_bias" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_multi_buffer" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_scale_bias" supported="gl">
+ <require>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_vertex_preclip" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ycrcb" supported="gl">
+ <require>
+ <enum name="GL_YCRCB_422_SGIX"/>
+ <enum name="GL_YCRCB_444_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ycrcb_subsample" supported="gl"/>
+ <extension name="GL_SGIX_ycrcba" supported="gl">
+ <require>
+ <enum name="GL_YCRCB_SGIX"/>
+ <enum name="GL_YCRCBA_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGI_color_matrix" supported="gl">
+ <require>
+ <enum name="GL_COLOR_MATRIX_SGI"/>
+ <enum name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ </require>
+ </extension>
+ <extension name="GL_SGI_color_table" supported="gl">
+ <require>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_FORMAT_SGI"/>
+ <enum name="GL_COLOR_TABLE_WIDTH_SGI"/>
+ <enum name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+ <command name="glColorTableSGI"/>
+ <command name="glColorTableParameterfvSGI"/>
+ <command name="glColorTableParameterivSGI"/>
+ <command name="glCopyColorTableSGI"/>
+ <command name="glGetColorTableSGI"/>
+ <command name="glGetColorTableParameterfvSGI"/>
+ <command name="glGetColorTableParameterivSGI"/>
+ </require>
+ </extension>
+ <extension name="GL_SGI_texture_color_table" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
+ </require>
+ </extension>
+ <extension name="GL_SUNX_constant_data" supported="gl">
+ <require>
+ <enum name="GL_UNPACK_CONSTANT_DATA_SUNX"/>
+ <enum name="GL_TEXTURE_CONSTANT_DATA_SUNX"/>
+ <command name="glFinishTextureSUNX"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_convolution_border_modes" supported="gl">
+ <require>
+ <enum name="GL_WRAP_BORDER_SUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_global_alpha" supported="gl">
+ <require>
+ <enum name="GL_GLOBAL_ALPHA_SUN"/>
+ <enum name="GL_GLOBAL_ALPHA_FACTOR_SUN"/>
+ <command name="glGlobalAlphaFactorbSUN"/>
+ <command name="glGlobalAlphaFactorsSUN"/>
+ <command name="glGlobalAlphaFactoriSUN"/>
+ <command name="glGlobalAlphaFactorfSUN"/>
+ <command name="glGlobalAlphaFactordSUN"/>
+ <command name="glGlobalAlphaFactorubSUN"/>
+ <command name="glGlobalAlphaFactorusSUN"/>
+ <command name="glGlobalAlphaFactoruiSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_mesh_array" supported="gl">
+ <require>
+ <enum name="GL_QUAD_MESH_SUN"/>
+ <enum name="GL_TRIANGLE_MESH_SUN"/>
+ <command name="glDrawMeshArraysSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_slice_accum" supported="gl">
+ <require>
+ <enum name="GL_SLICE_ACCUM_SUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_triangle_list" supported="gl">
+ <require>
+ <enum name="GL_RESTART_SUN"/>
+ <enum name="GL_REPLACE_MIDDLE_SUN"/>
+ <enum name="GL_REPLACE_OLDEST_SUN"/>
+ <enum name="GL_TRIANGLE_LIST_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN"/>
+ <enum name="GL_R1UI_V3F_SUN"/>
+ <enum name="GL_R1UI_C4UB_V3F_SUN"/>
+ <enum name="GL_R1UI_C3F_V3F_SUN"/>
+ <enum name="GL_R1UI_N3F_V3F_SUN"/>
+ <enum name="GL_R1UI_C4F_N3F_V3F_SUN"/>
+ <enum name="GL_R1UI_T2F_V3F_SUN"/>
+ <enum name="GL_R1UI_T2F_N3F_V3F_SUN"/>
+ <enum name="GL_R1UI_T2F_C4F_N3F_V3F_SUN"/>
+ <command name="glReplacementCodeuiSUN"/>
+ <command name="glReplacementCodeusSUN"/>
+ <command name="glReplacementCodeubSUN"/>
+ <command name="glReplacementCodeuivSUN"/>
+ <command name="glReplacementCodeusvSUN"/>
+ <command name="glReplacementCodeubvSUN"/>
+ <command name="glReplacementCodePointerSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_vertex" supported="gl">
+ <require>
+ <command name="glColor4ubVertex2fSUN"/>
+ <command name="glColor4ubVertex2fvSUN"/>
+ <command name="glColor4ubVertex3fSUN"/>
+ <command name="glColor4ubVertex3fvSUN"/>
+ <command name="glColor3fVertex3fSUN"/>
+ <command name="glColor3fVertex3fvSUN"/>
+ <command name="glNormal3fVertex3fSUN"/>
+ <command name="glNormal3fVertex3fvSUN"/>
+ <command name="glColor4fNormal3fVertex3fSUN"/>
+ <command name="glColor4fNormal3fVertex3fvSUN"/>
+ <command name="glTexCoord2fVertex3fSUN"/>
+ <command name="glTexCoord2fVertex3fvSUN"/>
+ <command name="glTexCoord4fVertex4fSUN"/>
+ <command name="glTexCoord4fVertex4fvSUN"/>
+ <command name="glTexCoord2fColor4ubVertex3fSUN"/>
+ <command name="glTexCoord2fColor4ubVertex3fvSUN"/>
+ <command name="glTexCoord2fColor3fVertex3fSUN"/>
+ <command name="glTexCoord2fColor3fVertex3fvSUN"/>
+ <command name="glTexCoord2fNormal3fVertex3fSUN"/>
+ <command name="glTexCoord2fNormal3fVertex3fvSUN"/>
+ <command name="glTexCoord2fColor4fNormal3fVertex3fSUN"/>
+ <command name="glTexCoord2fColor4fNormal3fVertex3fvSUN"/>
+ <command name="glTexCoord4fColor4fNormal3fVertex4fSUN"/>
+ <command name="glTexCoord4fColor4fNormal3fVertex4fvSUN"/>
+ <command name="glReplacementCodeuiVertex3fSUN"/>
+ <command name="glReplacementCodeuiVertex3fvSUN"/>
+ <command name="glReplacementCodeuiColor4ubVertex3fSUN"/>
+ <command name="glReplacementCodeuiColor4ubVertex3fvSUN"/>
+ <command name="glReplacementCodeuiColor3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiColor3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiNormal3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiColor4fNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiColor4fNormal3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fVertex3fSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_VIV_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_SHADER_BINARY_VIV"/>
+ </require>
+ </extension>
+ <extension name="GL_WIN_phong_shading" supported="gl">
+ <require>
+ <enum name="GL_PHONG_WIN"/>
+ <enum name="GL_PHONG_HINT_WIN"/>
+ </require>
+ </extension>
+ <extension name="GL_WIN_specular_fog" supported="gl">
+ <require>
+ <enum name="GL_FOG_SPECULAR_TEXTURE_WIN"/>
+ </require>
+ </extension>
+ </extensions>
+</registry>
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/main.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/main.go
new file mode 100644
index 000000000..e92e861f7
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/main.go
@@ -0,0 +1,1283 @@
+package main
+
+import (
+ "bufio"
+ "bytes"
+ "encoding/xml"
+ "flag"
+ "fmt"
+ "go/format"
+ "go/token"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "regexp"
+ "strconv"
+ "strings"
+ "text/template"
+)
+
+type Header struct {
+ Class string
+ Const []Const
+ Func []Func
+ Type []Type
+
+ FeatureFlags []Const
+
+ GLVersionName string
+ GLVersionLabel string
+}
+
+type Const struct {
+ Name string
+ Value string
+ Heading string
+ Comment string
+ LineBlock int
+ Disabled bool
+
+ GoName string
+}
+
+type Func struct {
+ Name string
+ Type string
+ Addr int
+ Param []Param
+
+ GoName string
+ GoType string
+ DocName string
+
+ Missing bool
+}
+
+type Param struct {
+ Name string
+ Type string
+ Addr int
+ Array int
+ Const bool
+
+ GoName string
+ GoNameOrig string
+ GoType string
+}
+
+type Type struct {
+ Name string
+ Type string
+ Comment string
+
+ GoName string
+}
+
+type glVersion struct {
+ api, number, profile string
+}
+
+var glVersions = []glVersion{
+ {"gl", "1.0", ""},
+ {"gl", "1.1", ""},
+ {"gl", "1.2", ""},
+ {"gl", "1.3", ""},
+ {"gl", "1.4", ""},
+ {"gl", "1.5", ""},
+ {"gl", "2.0", ""},
+ {"gl", "2.1", ""},
+ {"gl", "3.0", ""},
+ {"gl", "3.1", ""},
+ {"gl", "3.2", "core"},
+ {"gl", "3.2", "compatibility"},
+ {"gl", "3.3", "core"},
+ {"gl", "3.3", "compatibility"},
+ {"gl", "4.0", "core"},
+ {"gl", "4.0", "compatibility"},
+ {"gl", "4.1", "core"},
+ {"gl", "4.1", "compatibility"},
+ {"gl", "4.2", "core"},
+ {"gl", "4.2", "compatibility"},
+ {"gl", "4.3", "core"},
+ {"gl", "4.3", "compatibility"},
+ {"gles2", "2.0", ""},
+}
+
+func (v glVersion) name() string {
+ if v.api == "gles2" {
+ return "ES2"
+ }
+ return v.number
+}
+
+func (v glVersion) label() string {
+ if v.api == "gles2" {
+ return "es2"
+ }
+ name := strings.Replace(v.number, ".", "_", -1)
+ if v.profile == "compatibility" {
+ return name + "compat"
+ }
+ return name + v.profile
+}
+
+func (v glVersion) qtheader() string {
+ if v.api == "gles2" {
+ return "qopenglfunctions.h"
+ }
+ s := "qopenglfunctions_" + strings.Replace(v.number, ".", "_", -1)
+ if v.profile != "" {
+ s += "_" + v.profile
+ }
+ return s + ".h"
+}
+
+func main() {
+ flag.Parse()
+ args := flag.Args()
+ if len(args) != 2 {
+ fmt.Fprintf(os.Stderr, "usage: gengl <qt base include path> <output base path>\n")
+ os.Exit(1)
+ }
+ if err := run(args[0], args[1]); err != nil {
+ fmt.Fprintf(os.Stderr, "error: %v\n", err)
+ os.Exit(1)
+ }
+}
+
+func dirnames(path string) ([]string, error) {
+ dir, err := os.Open(path)
+ if err != nil {
+ return nil, err
+ }
+ list, err := dir.Readdirnames(0)
+ dir.Close()
+ return list, err
+}
+
+func parseQtHeader(filename string) (*Header, error) {
+ classData, err := ioutil.ReadFile(filename)
+ if err != nil {
+ return nil, fmt.Errorf("cannot read qt header file: %v", err)
+ }
+ var header Header
+ err = parseQt(string(classData), &header)
+ if err != nil {
+ return nil, err
+ }
+ return &header, nil
+}
+
+func borrowFuncs(header *Header, filename string) error {
+ bheader, err := parseQtHeader(filename)
+ if err != nil {
+ return err
+ }
+
+ seen := make(map[string]bool)
+ for _, f := range header.Func {
+ seen[f.Name] = true
+ }
+ for _, f := range bheader.Func {
+ if !seen[f.Name] {
+ f.Missing = true
+ header.Func = append(header.Func, f)
+ }
+ }
+ return nil
+}
+
+func run(qtdir, outdir string) error {
+ consts, err := parseConsts("gl.xml")
+ if err != nil {
+ return err
+ }
+
+ for _, glVersion := range glVersions {
+ header, err := parseQtHeader(filepath.Join(qtdir, "QtGui", glVersion.qtheader()))
+ if err != nil {
+ return err
+ }
+
+ header.GLVersionLabel = glVersion.label()
+ header.GLVersionName = glVersion.name()
+ header.Const = consts[glVersion]
+
+ if glVersion.api == "gles2" {
+ // Qt < 5.3 misses several ES2 entries in QOpenGLFunctions. As a workaround,
+ // find the missing entries from the pure ES2 class and use them directly.
+ err := borrowFuncs(header, filepath.Join(qtdir, "QtGui", "qopenglfunctions_es2.h"))
+ if err != nil {
+ return err
+ }
+ }
+
+ err = prepareHeader(header)
+ if err != nil {
+ return err
+ }
+
+ fileContent := make(map[string][]byte)
+ for _, pkgFile := range packageFiles {
+ var buf bytes.Buffer
+ err = pkgFile.Template.Execute(&buf, header)
+ if err != nil {
+ return fmt.Errorf("cannot execute template: %v", err)
+ }
+ data := buf.Bytes()
+ if strings.HasSuffix(pkgFile.Name, ".go") {
+ newdata, err := format.Source(data)
+ if err != nil {
+ return fmt.Errorf("\n%s\ncannot format generated Go code: %v\n", data, err)
+ }
+ data = newdata
+ }
+ fileContent[pkgFile.Name] = data
+ }
+
+ glDir := filepath.Join(outdir, strings.Replace(header.GLVersionLabel, "_", ".", -1))
+ err = os.MkdirAll(glDir, 0755)
+ if err != nil {
+ return fmt.Errorf("cannot make package directory at %s: %v", glDir, err)
+ }
+ oldNames, err := dirnames(glDir)
+ if err != nil {
+ return fmt.Errorf("cannot list contents of directory %s: %v", glDir, err)
+ }
+ for _, oldName := range oldNames {
+ oldPath := filepath.Join(glDir, oldName)
+ if err := os.Remove(oldPath); err != nil {
+ return fmt.Errorf("cannot remove previous file in %s: %v", glDir, err)
+ }
+ }
+ for name, data := range fileContent {
+ err = ioutil.WriteFile(filepath.Join(glDir, name), data, 0644)
+ if err != nil {
+ return err
+ }
+ }
+ }
+ return nil
+}
+
+type glRegistry struct {
+ Enums []glEnum `xml:"enums>enum"`
+ Groups []glGroup `xml:"groups>group"`
+ Features []glFeature `xml:"feature"`
+}
+
+type glFeature struct {
+ API string `xml:"api,attr"`
+ Number string `xml:"number,attr"`
+ Requires []glChange `xml:"require"`
+ Removes []glChange `xml:"remove"`
+}
+
+type glChange struct {
+ Profile string `xml:"profile,attr"`
+ Enums []glEnum `xml:"enum"`
+}
+
+type glGroup struct {
+ Name string `xml:"name,attr"`
+ Enums []glEnum `xml:"enum"`
+}
+
+type glEnum struct {
+ API string `xml:"api,attr"`
+ Name string `xml:"name,attr"`
+ Value string `xml:"value,attr"`
+}
+
+type groupTweak struct {
+ group string
+ rename string
+ replace []string
+ append []string
+ reorder bool
+}
+
+var groupTweaks = []groupTweak{{
+ group: "Boolean",
+ reorder: true,
+ append: []string{"GL_NONE"},
+}, {
+ group: "DataType",
+ reorder: true,
+ replace: []string{
+ "GL_BYTE",
+ "GL_UNSIGNED_BYTE",
+ "GL_SHORT",
+ "GL_UNSIGNED_SHORT",
+ "GL_INT",
+ "GL_UNSIGNED_INT",
+ "GL_FLOAT",
+ "GL_2_BYTES",
+ "GL_2_BYTES_NV",
+ "GL_3_BYTES",
+ "GL_3_BYTES_NV",
+ "GL_4_BYTES",
+ "GL_4_BYTES_NV",
+ "GL_DOUBLE",
+ "GL_DOUBLE_EXT",
+ "GL_HALF_FLOAT",
+ "GL_HALF_FLOAT_ARB",
+ "GL_HALF_FLOAT_NV",
+ "GL_HALF_APPLE",
+ "GL_FIXED",
+ "GL_FIXED_OES",
+ "GL_INT64_NV",
+ "GL_UNSIGNED_INT64_ARB",
+ "GL_UNSIGNED_INT64_NV",
+ },
+}, {
+ group: "BlendingFactorSrc",
+ replace: []string{
+ "GL_CONSTANT_ALPHA_EXT",
+ "GL_CONSTANT_COLOR_EXT",
+ "GL_DST_ALPHA",
+ "GL_DST_COLOR",
+ "GL_ONE",
+ "GL_ONE_MINUS_DST_ALPHA",
+ "GL_ONE_MINUS_DST_COLOR",
+ "GL_ONE_MINUS_SRC_ALPHA",
+ "GL_ONE_MINUS_SRC_COLOR",
+ "GL_SRC_ALPHA",
+ "GL_SRC_COLOR",
+ "GL_SRC_ALPHA_SATURATE",
+ "GL_ZERO",
+ },
+}, {
+ group: "AttribMask",
+ append: []string{
+ "GL_COVERAGE_BUFFER_BIT_NV",
+ },
+}}
+
+func tweakGroups(groups []glGroup) {
+ tweaks := make(map[string]groupTweak)
+ reorder := make(map[string]int)
+ top := 0
+ for _, tweak := range groupTweaks {
+ tweaks[tweak.group] = tweak
+ if tweak.reorder {
+ reorder[tweak.group] = top
+ top++
+ }
+ }
+
+ // Take reordered groups out, leaving space at the start.
+ stash := make([]glGroup, top)
+ for i, group := range groups {
+ newi, ok := reorder[group.Name]
+ if !ok {
+ continue
+ }
+ stash[newi] = group
+ copy(groups[1:i+1], groups[0:i])
+ }
+ // Put reordered groups back, in the proper order.
+ copy(groups, stash)
+
+ for i, group := range groups {
+ tweak, ok := tweaks[group.Name]
+ if !ok {
+ continue
+ }
+ if tweak.rename != "" {
+ group.Name = tweak.rename
+ }
+ if tweak.replace != nil {
+ group.Enums = group.Enums[:0]
+ for _, name := range tweak.replace {
+ group.Enums = append(group.Enums, glEnum{Name: name})
+ }
+ }
+ if tweak.append != nil {
+ for _, name := range tweak.append {
+ group.Enums = append(group.Enums, glEnum{Name: name})
+ }
+ }
+ groups[i] = group
+ }
+}
+
+func parseConsts(filename string) (map[glVersion][]Const, error) {
+ f, err := os.Open(filename)
+ if err != nil {
+ return nil, fmt.Errorf("cannot open %s: %v", filename, err)
+ }
+ defer f.Close()
+
+ var registry glRegistry
+ err = xml.NewDecoder(f).Decode(&registry)
+ if err != nil {
+ return nil, fmt.Errorf("cannot parse %s: %v", filename, err)
+ }
+
+ var all = make(map[glVersion]map[string]bool)
+ var last = make(map[string]map[string]bool)
+ for _, feature := range registry.Features {
+ for _, profile := range []string{"", "core", "compatibility"} {
+ required := make(map[string]bool)
+ for name := range last[feature.API+":"+profile] {
+ required[name] = true
+ }
+ if profile != "" {
+ for name := range last[feature.API+":"] {
+ required[name] = true
+ }
+ }
+
+ for _, require := range feature.Requires {
+ if require.Profile == profile || require.Profile == "" {
+ for _, enum := range require.Enums {
+ required[enum.Name] = true
+ }
+ }
+ }
+ for _, remove := range feature.Removes {
+ if remove.Profile == profile || remove.Profile == "" {
+ for _, enum := range remove.Enums {
+ delete(required, enum.Name)
+ }
+ }
+ }
+
+ all[glVersion{feature.API, feature.Number, profile}] = required
+ last[feature.API+":"+profile] = required
+ }
+ }
+
+ // Enums in groups and requires/removes have no values.
+ enums := make(map[string]glEnum)
+ for _, enum := range registry.Enums {
+ enums[enum.Name] = enum
+ }
+
+ tweakGroups(registry.Groups)
+
+ consts := make(map[glVersion][]Const)
+ for _, glVersion := range glVersions {
+ var required = all[glVersion]
+ var done = make(map[string]bool)
+ var lineblock = 0
+ var vconsts []Const
+ for _, group := range registry.Groups {
+ for _, enum := range group.Enums {
+ if required[enum.Name] && !done[enum.Name] {
+ done[enum.Name] = true
+ c := Const{
+ Name: enum.Name,
+ Value: enums[enum.Name].Value,
+ LineBlock: lineblock,
+ }
+ vconsts = append(vconsts, c)
+ }
+ }
+ lineblock++
+ }
+ // Everything else not found in groups.
+ for _, enum := range registry.Enums {
+ if required[enum.Name] && !done[enum.Name] {
+ done[enum.Name] = true
+ c := Const{
+ Name: enum.Name,
+ Value: enum.Value,
+ LineBlock: lineblock,
+ }
+ vconsts = append(vconsts, c)
+ }
+ }
+ consts[glVersion] = vconsts
+ }
+ // Version 1.0 has no enums. Copy from 1.1.
+ consts[glVersion{"gl", "1.0", ""}] = consts[glVersion{"gl", "1.1", ""}]
+ return consts, nil
+}
+
+func prepareHeader(header *Header) error {
+ funcNameDocCount := make(map[string]int)
+
+ for fi, f := range header.Func {
+ docPrefix := funcNameDocPrefix(f.Name)
+ if docPrefix != f.Name {
+ funcNameDocCount[docPrefix]++
+ }
+ if !strings.HasPrefix(f.Name, "gl") || len(f.Name) < 3 {
+ panic("unexpected C function name: " + f.Name)
+ }
+ f.GoName = f.Name[2:]
+ if f.Type == "int" {
+ // Some consistency. It's in a gl* function after all.
+ f.Type = "GLint"
+ }
+ if f.Type != "void" {
+ f.GoType = goTypeName(f.Type)
+ }
+ tweaks := funcTweaks[f.GoName]
+ if tweaks.result != "" {
+ f.GoType = tweaks.result
+ }
+ for pi := range f.Param {
+ f.Param[pi] = prepareParam(f, pi)
+ }
+ header.Func[fi] = f
+ }
+
+ for fi, f := range header.Func {
+ prefix := funcNameDocPrefix(f.Name)
+ if funcNameDocCount[prefix] > 1 {
+ f.DocName = prefix
+ } else {
+ f.DocName = f.Name
+ }
+ header.Func[fi] = f
+ }
+
+ for ti, t := range header.Type {
+ t.GoName = goTypeName(t.Name)
+ header.Type[ti] = t
+ }
+
+ for ci, c := range header.Const {
+ if !strings.HasPrefix(c.Name, "GL") || len(c.Name) < 3 {
+ panic("unexpected C define name: " + c.Name)
+ }
+ if c.Name[3] >= '0' && c.Name[3] <= '9' {
+ c.GoName = "N" + c.Name[3:]
+ } else {
+ c.GoName = c.Name[3:]
+ }
+ header.Const[ci] = c
+ }
+
+ return nil
+}
+
+func goTypeName(ctypeName string) string {
+ // These types carry very little meaning, so it's more
+ // convenient to have their native counterparts instead.
+ switch ctypeName {
+ case "GLboolean":
+ return "bool"
+ case "GLbyte", "GLchar":
+ return "byte"
+ case "GLubyte":
+ return "uint8"
+ case "GLshort":
+ return "int16"
+ case "GLushort":
+ return "uint16"
+ case "GLint", "GLsizei":
+ return "int32"
+ case "GLuint":
+ return "uint32"
+ case "GLint64":
+ return "int64"
+ case "GLuint64":
+ return "uint64"
+ case "GLintptr", "GLsizeiptr":
+ return "int"
+ case "GLuintptr":
+ return "uintptr"
+ case "GLfloat":
+ return "float32"
+ case "GLdouble":
+ return "float64"
+ }
+ if !strings.HasPrefix(ctypeName, "GL") || len(ctypeName) < 3 {
+ panic("unexpected C type name: " + ctypeName)
+ }
+ return "glbase." + string(ctypeName[2]-('a'-'A')) + ctypeName[3:]
+}
+
+func prepareParam(f Func, pi int) Param {
+ p := f.Param[pi]
+
+ // Qt seems to have gratuitously changed some names.
+ if name, ok := paramNameFixes[p.Name]; ok {
+ p.Name = name
+ }
+ if pi > 0 && strings.HasPrefix(f.GoName, "Uniform") && p.Name != "count" && p.Name != "transpose" {
+ if strings.HasSuffix(f.GoName, "v") {
+ p.Name = "value"
+ } else if f.Param[1].Name == "count" {
+ p.Name = "v" + string('0' + pi-2)
+ } else {
+ p.Name = "v" + string('0' + pi-1)
+ }
+ }
+
+ // Other names conflict with Go keywords.
+ switch p.Name {
+ case "type", "func", "map", "string":
+ p.GoName = "gl" + p.Name
+ default:
+ if token.Lookup(p.Name) != token.IDENT {
+ p.GoName = p.Name + "_"
+ } else {
+ p.GoName = p.Name
+ }
+ }
+
+ // Some consistency. Those are a gl* function after all.
+ switch p.Type {
+ case "void":
+ p.Type = "GLvoid"
+ case "char":
+ p.Type = "GLchar"
+ case "qopengl_GLsizeiptr", "qopengl_GLintptr":
+ p.Type = p.Type[8:]
+ }
+
+ // Prepare the parameter type.
+ p.GoType = goTypeName(p.Type)
+ switch p.GoType {
+ case "uint32":
+ switch p.GoName {
+ case "program", "programs":
+ p.GoType = "glbase.Program"
+ case "shader", "shaders":
+ p.GoType = "glbase.Shader"
+ case "buffer", "buffers":
+ p.GoType = "glbase.Buffer"
+ case "texture", "textures":
+ p.GoType = "glbase.Texture"
+ case "framebuffer", "framebuffers":
+ p.GoType = "glbase.Framebuffer"
+ case "renderbuffer", "renderbuffers":
+ p.GoType = "glbase.Renderbuffer"
+ case "index":
+ if strings.Contains(f.Name, "Attrib") {
+ p.GoType = "glbase.Attrib"
+ }
+ }
+ case "int32":
+ switch p.GoName {
+ case "size", "count", "stride", "offset", "xoffset", "yoffset", "order", "level":
+ p.GoType = "int"
+ case "n", "first", "width", "height", "border", "imageSize":
+ p.GoType = "int"
+ case "x", "y", "z", "w":
+ if !strings.HasPrefix(f.GoName, "Uniform") {
+ p.GoType = "int"
+ }
+ case "location":
+ if strings.Contains(f.Name, "Uniform") {
+ p.GoType = "glbase.Uniform"
+ }
+ }
+ }
+
+ // Save the original name so that future tweaks can still refer
+ // to it, and apply the tweaks.
+ p.GoNameOrig = p.GoName
+ tweak := funcTweaks[f.GoName].params[p.GoNameOrig]
+ if tweak.retype != "" {
+ p.GoType = tweak.retype
+ }
+ if tweak.rename != "" {
+ p.GoName = tweak.rename
+ }
+
+ return p
+}
+
+func funcNameDocPrefix(cfuncName string) string {
+ k := len(cfuncName) - 1
+ if cfuncName[k] == 'v' {
+ k--
+ }
+ switch cfuncName[k] {
+ case 'i', 'f', 'd', 's', 'b':
+ k--
+ if cfuncName[k] == 'u' {
+ k--
+ }
+ switch cfuncName[k] {
+ case '1', '2', '3', '4':
+ k--
+ }
+ }
+ return cfuncName[:k+1]
+}
+
+var constLineBlock = -1
+
+func constNewLine(lineBlock int) bool {
+ if lineBlock == constLineBlock {
+ return false
+ }
+ constLineBlock = lineBlock
+ return true
+}
+
+func substr(s string, i ...int) string {
+ switch len(i) {
+ case 1:
+ return s[i[0]:]
+ case 2:
+ return s[i[0]:i[1]]
+ }
+ panic("invalid number of arguments for substr")
+}
+
+var funcTweaks = make(map[string]funcTweak)
+
+func init() {
+ var re = regexp.MustCompile(`\bcopy:([a-zA-Z0-9]+)\b`)
+ for _, tweak := range funcTweakList {
+ funcTweaks[tweak.name] = tweak
+ }
+ for _, tweak := range funcTweakList {
+ if tweak.copy != "" {
+ doc := tweak.doc
+ name := tweak.name
+ tweak = funcTweaks[tweak.copy]
+ tweak.name = name
+ if doc != "" {
+ tweak.doc = doc
+ }
+ }
+ tweak.doc = re.ReplaceAllStringFunc(tweak.doc, func(match string) string {
+ return funcTweaks[match[5:]].doc
+ })
+ funcTweaks[tweak.name] = tweak
+ }
+}
+
+func funcComment(header *Header, f Func) string {
+ var doc = funcTweaks[f.GoName].doc
+ doc = strings.TrimRight(execTemplate(f.GoName+":doc", doc, f), "\n\t ")
+ var buf bytes.Buffer
+ if doc != "" {
+ var scanner = bufio.NewScanner(bytes.NewBufferString(doc))
+ var started bool
+ var prefix string
+ for scanner.Scan() {
+ line := scanner.Text()
+ if !started {
+ if line == "" {
+ continue
+ }
+ started = true
+ trimmed := strings.TrimLeft(line, "\t ")
+ prefix = line[:len(line)-len(trimmed)]
+ line = f.GoName + " " + trimmed
+ } else {
+ line = strings.TrimPrefix(line, prefix)
+ }
+ buf.WriteString("// ")
+ buf.WriteString(line)
+ buf.WriteByte('\n')
+ }
+ }
+ if buf.Len() > 0 {
+ return strings.TrimSuffix(buf.String(), "\n")
+ }
+ var manNum = 2
+ if header.GLVersionName[0] >= '2' && header.GLVersionName[0] <= '4' {
+ manNum = int(header.GLVersionName[0] - '0')
+ }
+ return fmt.Sprintf("// https://www.opengl.org/sdk/docs/man%d/xhtml/%s.xml", manNum, f.Name)
+}
+
+type paramItem struct {
+ GoName string
+ GoType string
+}
+
+func appendResultList(list []paramItem, f Func) []paramItem {
+ var tweaks = funcTweaks[f.GoName]
+ var buf bytes.Buffer
+ tweak := tweaks.params["result"]
+ if f.GoType != "" && !tweak.omit {
+ var item paramItem
+ if tweak.rename != "" {
+ item.GoName = tweak.rename
+ } else {
+ item.GoName = "result"
+ }
+ if tweak.retype != "" {
+ item.GoType = tweak.retype
+ } else {
+ for i := 0; i < f.Addr; i++ {
+ buf.WriteString("[]")
+ }
+ buf.WriteString(f.GoType)
+ item.GoType = buf.String()
+ }
+ list = append(list, item)
+ }
+ return list
+}
+
+func appendParamsList(list []paramItem, f Func, output bool) []paramItem {
+ var tweaks = funcTweaks[f.GoName]
+ var buf bytes.Buffer
+ for _, param := range f.Param {
+ tweak := tweaks.params[param.GoNameOrig]
+ if tweak.omit || tweak.output != output {
+ continue
+ }
+ item := paramItem{GoName: param.GoName}
+ if tweak.retype != "" {
+ item.GoType = param.GoType
+ } else if param.Addr == 1 && param.Type == "GLvoid" {
+ item.GoType = "interface{}"
+ } else if tweak.single {
+ item.GoType = param.GoType
+ } else {
+ buf.Truncate(0)
+ for j := 0; j < param.Addr; j++ {
+ buf.WriteString("[]")
+ }
+ if param.Array > 0 {
+ buf.WriteByte('[')
+ buf.WriteString(strconv.Itoa(param.Array))
+ buf.WriteByte(']')
+ }
+ buf.WriteString(param.GoType)
+ item.GoType = buf.String()
+ }
+ list = append(list, item)
+ }
+ return list
+}
+
+func formatParamsList(list []paramItem) string {
+ var buf bytes.Buffer
+ for i, item := range list {
+ if i > 0 {
+ buf.WriteString(", ")
+ }
+ buf.WriteString(item.GoName)
+ if i == len(list)-1 || item.GoType != list[i+1].GoType {
+ buf.WriteByte(' ')
+ buf.WriteString(item.GoType)
+ }
+ }
+ return buf.String()
+}
+
+func funcParams(f Func) string {
+ list := appendParamsList(nil, f, false)
+ return formatParamsList(list)
+}
+
+func funcResult(f Func) string {
+ list := appendResultList(nil, f)
+ list = appendParamsList(list, f, true)
+ if len(list) == 0 {
+ return ""
+ }
+ if len(list) == 1 && (list[0].GoName == "result" || funcTweaks[f.GoName].params[list[0].GoName].unnamed) {
+ return list[0].GoType
+ }
+ return "(" + formatParamsList(list) + ")"
+}
+
+func funcBefore(f Func) string {
+ content := funcTweaks[f.GoName].before
+ return strings.TrimSpace(execTemplate(f.GoName+":before", content, f))
+}
+
+func funcAfter(f Func) string {
+ content := funcTweaks[f.GoName].after
+ return strings.TrimSpace(execTemplate(f.GoName+":after", content, f))
+}
+
+func funcCallParams(f Func) string {
+ tweaks := funcTweaks[f.GoName]
+ var buf bytes.Buffer
+ for i, param := range f.Param {
+ if i > 0 {
+ buf.WriteString(", ")
+ }
+ tweak := tweaks.params[param.GoNameOrig]
+ name := param.GoName
+ if tweak.replace {
+ name += "_c"
+ }
+ if param.Addr == 1 && param.Type == "GLvoid" {
+ buf.WriteString(name)
+ buf.WriteString("_ptr")
+ } else if param.Addr == 1 && param.Type == "GLchar" && param.GoType == "string" {
+ buf.WriteString("(*C.GLchar)(")
+ buf.WriteString(name)
+ buf.WriteString("_cstr)")
+ } else if param.Addr > 0 {
+ buf.WriteByte('(')
+ for i := 0; i < param.Addr; i++ {
+ buf.WriteByte('*')
+ }
+ buf.WriteString("C.")
+ buf.WriteString(param.Type)
+ buf.WriteString(")(unsafe.Pointer(&")
+ buf.WriteString(name)
+ if !tweak.single {
+ buf.WriteString("[0]")
+ }
+ buf.WriteString("))")
+
+ } else if param.Type == "GLboolean" {
+ buf.WriteString("*(*C.GLboolean)(unsafe.Pointer(&")
+ buf.WriteString(name)
+ buf.WriteString("))")
+ } else if param.Type == "GLsync" {
+ buf.WriteString("C.GLsync(unsafe.Pointer(")
+ buf.WriteString(name)
+ buf.WriteString("))")
+ } else {
+ buf.WriteString("C.")
+ buf.WriteString(param.Type)
+ buf.WriteByte('(')
+ buf.WriteString(name)
+ buf.WriteByte(')')
+ }
+ }
+ return buf.String()
+}
+
+func funcCallParamsPrep(f Func) string {
+ var buf bytes.Buffer
+ for _, param := range f.Param {
+ name := param.GoName
+ if param.Addr == 1 && param.Type == "GLchar" && param.GoType == "string" {
+ fmt.Fprintf(&buf, "%s_cstr := C.CString(%s)\n", name, name)
+ }
+ if param.Addr == 1 && param.Type == "GLvoid" && param.GoType == "glbase.Void" {
+ fmt.Fprintf(&buf, "var %s_ptr unsafe.Pointer\n", name)
+ fmt.Fprintf(&buf, "var %s_v = reflect.ValueOf(%s)\n", name, name)
+ fmt.Fprintf(&buf, "if %s != nil && %s_v.Kind() != reflect.Slice { panic(\"parameter %s must be a slice\") }\n", name, name, name)
+ fmt.Fprintf(&buf, "if %s != nil { %s_ptr = unsafe.Pointer(%s_v.Index(0).Addr().Pointer()) }\n", name, name, name)
+ }
+ if plen := funcParamLen(f, param); plen > 0 {
+ fmt.Fprintf(&buf, "if len(%s) != %d { panic(\"parameter %s has incorrect length\") }\n", name, plen, name)
+ }
+ }
+ return buf.String()
+}
+
+func funcCallParamsPost(f Func) string {
+ var buf bytes.Buffer
+ for _, param := range f.Param {
+ if param.Addr == 1 && param.Type == "GLchar" && param.GoType == "string" {
+ buf.WriteString("C.free(unsafe.Pointer(")
+ buf.WriteString(param.GoName)
+ buf.WriteString("_cstr))\n")
+ }
+ }
+ return buf.String()
+}
+
+func funcReturnResult(f Func) string {
+ tweaks := funcTweaks[f.GoName]
+ var buf bytes.Buffer
+ if f.GoType != "" {
+ if f.Type == "GLboolean" {
+ buf.WriteString("*(*bool)(unsafe.Pointer(&glresult))")
+ } else if f.Type == "GLsync" {
+ buf.WriteString("glbase.Sync(unsafe.Pointer(glresult))")
+ } else {
+ buf.WriteString(f.GoType)
+ buf.WriteString("(glresult)")
+ }
+ }
+ for _, param := range f.Param {
+ tweak := tweaks.params[param.GoNameOrig]
+ if tweak.omit || !tweak.output {
+ continue
+ }
+ if buf.Len() > 0 {
+ buf.WriteString(", ")
+ }
+ buf.WriteString(param.GoName)
+ }
+ return buf.String()
+}
+
+func funcCParams(f Func) string {
+ var buf bytes.Buffer
+ for i, param := range f.Param {
+ if i > 0 {
+ buf.WriteString(", ")
+ }
+ if param.Const {
+ buf.WriteString("const ")
+ }
+ buf.WriteString(param.Type)
+ for j := 0; j < param.Addr; j++ {
+ buf.WriteString("*")
+ }
+ if param.Array > 0 {
+ buf.WriteByte('[')
+ buf.WriteString(strconv.Itoa(param.Array))
+ buf.WriteByte(']')
+ }
+ buf.WriteByte(' ')
+ buf.WriteString(param.GoName)
+ }
+ return buf.String()
+}
+
+func funcCCallParams(f Func) string {
+ var buf bytes.Buffer
+ for i, param := range f.Param {
+ if i > 0 {
+ buf.WriteString(", ")
+ }
+ buf.WriteString(param.GoName)
+ }
+ return buf.String()
+}
+
+func funcParamLen(f Func, param Param) int {
+ if strings.HasPrefix(f.GoName, "Uniform") {
+ return 0
+ }
+ if param.Addr == 0 || len(f.Name) < 3 || f.Name[len(f.Name)-1] != 'v' {
+ return 0
+ }
+ switch f.Name[len(f.Name)-2] {
+ case 'i', 'f', 'd', 's':
+ switch c := f.Name[len(f.Name)-3]; c {
+ case '2', '3', '4':
+ return int(c - '0')
+ }
+ }
+ return 0
+}
+
+// funcSupported returns whether the given function has wrapping
+// properly implemented already.
+func funcSupported(f Func) bool {
+ if _, ok := funcTweaks[f.GoName]; ok {
+ return true
+ }
+ if f.Addr > 0 {
+ return false
+ }
+ for _, param := range f.Param {
+ if param.Array > 0 {
+ return false
+ }
+ if param.Addr > 1 {
+ return false
+ }
+ }
+ return true
+}
+
+func copyDoc(name string) string {
+ return funcTweaks[name].doc
+}
+
+func paramGoType(f Func, name string) string {
+ for _, param := range f.Param {
+ if param.GoName == name {
+ return param.GoType
+ }
+ }
+ panic(fmt.Sprintf("parameter %q not found in function %s", name, f.GoName))
+}
+
+func funcSince(f Func, since string) string {
+ if strings.HasSuffix(since, "+") {
+ return f.GoName + " is available in GL version " + since[:len(since)-1] + " or greater."
+ }
+ return f.GoName + " is available in GL version " + since + "."
+}
+
+func execTemplate(name, content string, dot interface{}) string {
+ if !strings.Contains(content, "{{") {
+ return content
+ }
+ var buf bytes.Buffer
+ tmpl := template.Must(template.New(name).Funcs(funcs).Parse(content))
+ if err := tmpl.Execute(&buf, dot); err != nil {
+ panic(err)
+ }
+ return buf.String()
+}
+
+func buildTemplate(name, content string) *template.Template {
+ return template.Must(template.New(name).Funcs(funcs).Parse(content))
+}
+
+var funcs template.FuncMap
+
+type packageFile struct {
+ Name string
+ Template *template.Template
+}
+
+var packageFiles []packageFile
+
+func init() {
+ funcs = template.FuncMap{
+ "copyDoc": copyDoc,
+ "paramGoType": paramGoType,
+ "funcSince": funcSince,
+
+ "constNewLine": constNewLine,
+ "lower": strings.ToLower,
+ "substr": substr,
+
+ "funcSupported": funcSupported,
+ "funcComment": funcComment,
+ "funcParams": funcParams,
+ "funcResult": funcResult,
+ "funcBefore": funcBefore,
+ "funcCallParams": funcCallParams,
+ "funcCallParamsPrep": funcCallParamsPrep,
+ "funcCallParamsPost": funcCallParamsPost,
+ "funcAfter": funcAfter,
+ "funcReturnResult": funcReturnResult,
+ "funcCParams": funcCParams,
+ "funcCCallParams": funcCCallParams,
+ }
+
+ packageFiles = []packageFile{
+ {"gl.go", buildTemplate("gl.go", tmplGo)},
+ {"funcs.cpp", buildTemplate("funcs.cpp", tmplFuncsCpp)},
+ {"funcs.h", buildTemplate("funcs.h", tmplFuncsH)},
+ }
+}
+
+var tmplGo = `
+// ** file automatically generated by glgen -- do not edit manually **
+
+package GL
+
+// #cgo CXXFLAGS: -std=c++0x -pedantic-errors -Wall -fno-strict-aliasing
+// #cgo LDFLAGS: -lstdc++
+{{if eq $.GLVersionName "ES2"}}// #cgo !darwin LDFLAGS: -lGL
+// #cgo darwin LDFLAGS: -framework OpenGL
+{{end}}// #cgo pkg-config: Qt5Core Qt5OpenGL
+//
+// #include "funcs.h"
+//
+// void free(void*);
+//
+import "C"
+
+import (
+ "fmt"
+ "reflect"
+ "unsafe"
+
+ "gopkg.in/qml.v1/gl/glbase"
+)
+
+// API returns a value that offers methods matching the OpenGL version {{$.GLVersionName}} API.
+//
+// The returned API must not be used after the provided OpenGL context becomes invalid.
+func API(context glbase.Contexter) *GL {
+ gl := &GL{}
+ gl.funcs = C.gl{{$.GLVersionLabel}}_funcs()
+ if gl.funcs == nil {
+ panic(fmt.Errorf("OpenGL version {{$.GLVersionName}} is not available"))
+ }
+ return gl
+}
+
+// GL implements the OpenGL version {{$.GLVersionName}} API. Values of this
+// type must be created via the API function, and it must not be used after
+// the associated OpenGL context becomes invalid.
+type GL struct {
+ funcs unsafe.Pointer
+}
+
+const ({{range $const := $.Const}}{{if $const.LineBlock | constNewLine}}
+{{end}}{{if $const.Heading}} // {{$const.Heading}}
+{{end}} {{if $const.Disabled}}//{{end}}{{$const.GoName}} = {{$const.Value}}{{if $const.Comment}} // {{$const.Comment}}{{end}}
+{{end}})
+
+{{ range $func := $.Func }}{{if $func | funcSupported}}
+{{funcComment $ $func}}
+func (gl *GL) {{$func.GoName}}({{funcParams $func}}) {{funcResult $func}} {
+ {{funcCallParamsPrep $func}} {{/*
+*/}} {{with $code := funcBefore $func}}{{$code}}
+ {{end}} {{/*
+*/}} {{if ne $func.Type "void"}}glresult := {{end}}C.gl{{$.GLVersionLabel}}_{{$func.Name}}(gl.funcs{{if $func.Param}}, {{funcCallParams $func}}{{end}})
+ {{with $code := funcAfter $func}}{{$code}}
+ {{end}} {{/*
+*/}} {{funcCallParamsPost $func}} {{/*
+*/}} {{with $code := funcReturnResult $func}}return {{$code}}
+ {{end}} {{/*
+*/}} }
+{{end}}{{end}}
+`
+
+var tmplFuncsCpp = `
+// ** file automatically generated by glgen -- do not edit manually **
+
+#include <QOpenGLContext>
+#include <QtGui/{{lower $.Class}}.h>
+
+#include "funcs.h"
+
+void *gl{{$.GLVersionLabel}}_funcs() {
+ {{$.Class}}* funcs = QOpenGLContext::currentContext()->{{if eq $.Class "QOpenGLFunctions"}}functions{{else}}versionFunctions<{{$.Class}}>{{end}}();
+ if (!funcs) {
+ return 0;
+ }{{if ne $.Class "QOpenGLFunctions"}}
+ funcs->initializeOpenGLFunctions();{{end}}
+ return funcs;
+}
+
+{{ range $func := $.Func }}{{if $func | funcSupported}}
+{{$func.Type}} gl{{$.GLVersionLabel}}_{{$func.Name}}(void *_glfuncs{{if $func.Param}}, {{funcCParams $func}}{{end}})
+{
+ {{if not $func.Missing}}{{$.Class}}* _qglfuncs = reinterpret_cast<{{$.Class}}*>(_glfuncs);
+ {{end}}{{if $func.GoType}}return {{end}}{{if not $func.Missing}}_qglfuncs->{{end}}{{$func.Name}}({{funcCCallParams $func}});
+}
+{{end}}{{end}}
+`
+
+var tmplFuncsH = `
+// ** file automatically generated by glgen -- do not edit manually **
+
+#ifndef __cplusplus
+#include <inttypes.h>
+#include <stddef.h>
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef char GLchar;
+typedef signed char GLbyte; /* 1-byte signed */
+typedef short GLshort; /* 2-byte signed */
+typedef int GLint; /* 4-byte signed */
+typedef unsigned char GLubyte; /* 1-byte unsigned */
+typedef unsigned short GLushort; /* 2-byte unsigned */
+typedef unsigned int GLuint; /* 4-byte unsigned */
+typedef int GLsizei; /* 4-byte signed */
+typedef float GLfloat; /* single precision float */
+typedef float GLclampf; /* single precision float in [0,1] */
+typedef double GLdouble; /* double precision float */
+typedef double GLclampd; /* double precision float in [0,1] */
+typedef int64_t GLint64;
+typedef uint64_t GLuint64;
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+typedef ptrdiff_t GLintptrARB;
+typedef ptrdiff_t GLsizeiptrARB;
+typedef struct __GLsync *GLsync;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void *gl{{$.GLVersionLabel}}_funcs();
+
+{{ range $func := $.Func }}{{if $func | funcSupported}}{{$func.Type}} gl{{$.GLVersionLabel}}_{{$func.Name}}(void *_glfuncs{{if $func.Param}}, {{funcCParams $func}}{{end}});
+{{end}}{{end}}
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+`
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/parseqt.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/parseqt.go
new file mode 100644
index 000000000..a4a882dd9
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/parseqt.go
@@ -0,0 +1,13904 @@
+
+// line 1 "parseqt.rl"
+//
+// To compile:
+//
+// ragel -Z -G2 -o parseqt.go parseqt.rl
+//
+// To show a diagram of the state machine:
+//
+// ragel -V -G2 -p -o parseqt.dot parseqt.rl
+// dot -Tsvg -o parseqt.svg parseqt.dot
+// chrome parseqt.svg
+//
+
+package main
+
+import (
+ "fmt"
+)
+
+
+// line 23 "parseqt.go"
+const parseqt_start int = 447
+const parseqt_first_final int = 447
+const parseqt_error int = 0
+
+const parseqt_en_main int = 447
+const parseqt_en_inclass int = 450
+const parseqt_en_skiperror int = 446
+
+
+// line 23 "parseqt.rl"
+
+
+func parseQt(data string, header *Header) error {
+ var cs, p, pe int
+ var ts, te, act, eof int
+
+ pe = len(data)
+ eof = len(data)
+
+ _, _, _ = ts, te, act
+
+ //stack := make([]int, 32)
+ //top := 0
+
+ var curline = 1
+
+ var m0, m1, m2, m3, m4, m5, m6 int
+ var foundclass int
+ var inpublic bool
+ var heading string
+ var lineblock int
+ var f Func
+
+
+// line 58 "parseqt.go"
+ {
+ cs = parseqt_start
+ ts = 0
+ te = 0
+ act = 0
+ }
+
+// line 66 "parseqt.go"
+ {
+ if p == pe {
+ goto _test_eof
+ }
+ switch cs {
+ case 447:
+ goto st_case_447
+ case 1:
+ goto st_case_1
+ case 2:
+ goto st_case_2
+ case 3:
+ goto st_case_3
+ case 4:
+ goto st_case_4
+ case 5:
+ goto st_case_5
+ case 6:
+ goto st_case_6
+ case 7:
+ goto st_case_7
+ case 8:
+ goto st_case_8
+ case 9:
+ goto st_case_9
+ case 10:
+ goto st_case_10
+ case 11:
+ goto st_case_11
+ case 12:
+ goto st_case_12
+ case 13:
+ goto st_case_13
+ case 14:
+ goto st_case_14
+ case 15:
+ goto st_case_15
+ case 16:
+ goto st_case_16
+ case 17:
+ goto st_case_17
+ case 18:
+ goto st_case_18
+ case 19:
+ goto st_case_19
+ case 20:
+ goto st_case_20
+ case 21:
+ goto st_case_21
+ case 448:
+ goto st_case_448
+ case 22:
+ goto st_case_22
+ case 23:
+ goto st_case_23
+ case 24:
+ goto st_case_24
+ case 25:
+ goto st_case_25
+ case 26:
+ goto st_case_26
+ case 27:
+ goto st_case_27
+ case 28:
+ goto st_case_28
+ case 29:
+ goto st_case_29
+ case 30:
+ goto st_case_30
+ case 31:
+ goto st_case_31
+ case 32:
+ goto st_case_32
+ case 33:
+ goto st_case_33
+ case 34:
+ goto st_case_34
+ case 35:
+ goto st_case_35
+ case 36:
+ goto st_case_36
+ case 37:
+ goto st_case_37
+ case 38:
+ goto st_case_38
+ case 39:
+ goto st_case_39
+ case 40:
+ goto st_case_40
+ case 41:
+ goto st_case_41
+ case 42:
+ goto st_case_42
+ case 43:
+ goto st_case_43
+ case 44:
+ goto st_case_44
+ case 45:
+ goto st_case_45
+ case 46:
+ goto st_case_46
+ case 47:
+ goto st_case_47
+ case 48:
+ goto st_case_48
+ case 49:
+ goto st_case_49
+ case 50:
+ goto st_case_50
+ case 51:
+ goto st_case_51
+ case 52:
+ goto st_case_52
+ case 53:
+ goto st_case_53
+ case 54:
+ goto st_case_54
+ case 55:
+ goto st_case_55
+ case 56:
+ goto st_case_56
+ case 449:
+ goto st_case_449
+ case 57:
+ goto st_case_57
+ case 446:
+ goto st_case_446
+ case 453:
+ goto st_case_453
+ case 0:
+ goto st_case_0
+ case 454:
+ goto st_case_454
+ case 450:
+ goto st_case_450
+ case 58:
+ goto st_case_58
+ case 59:
+ goto st_case_59
+ case 60:
+ goto st_case_60
+ case 61:
+ goto st_case_61
+ case 62:
+ goto st_case_62
+ case 63:
+ goto st_case_63
+ case 64:
+ goto st_case_64
+ case 65:
+ goto st_case_65
+ case 66:
+ goto st_case_66
+ case 67:
+ goto st_case_67
+ case 68:
+ goto st_case_68
+ case 69:
+ goto st_case_69
+ case 70:
+ goto st_case_70
+ case 71:
+ goto st_case_71
+ case 72:
+ goto st_case_72
+ case 73:
+ goto st_case_73
+ case 74:
+ goto st_case_74
+ case 75:
+ goto st_case_75
+ case 76:
+ goto st_case_76
+ case 77:
+ goto st_case_77
+ case 78:
+ goto st_case_78
+ case 79:
+ goto st_case_79
+ case 80:
+ goto st_case_80
+ case 81:
+ goto st_case_81
+ case 82:
+ goto st_case_82
+ case 83:
+ goto st_case_83
+ case 84:
+ goto st_case_84
+ case 85:
+ goto st_case_85
+ case 86:
+ goto st_case_86
+ case 87:
+ goto st_case_87
+ case 88:
+ goto st_case_88
+ case 89:
+ goto st_case_89
+ case 90:
+ goto st_case_90
+ case 91:
+ goto st_case_91
+ case 92:
+ goto st_case_92
+ case 93:
+ goto st_case_93
+ case 94:
+ goto st_case_94
+ case 95:
+ goto st_case_95
+ case 96:
+ goto st_case_96
+ case 97:
+ goto st_case_97
+ case 98:
+ goto st_case_98
+ case 99:
+ goto st_case_99
+ case 100:
+ goto st_case_100
+ case 101:
+ goto st_case_101
+ case 102:
+ goto st_case_102
+ case 103:
+ goto st_case_103
+ case 104:
+ goto st_case_104
+ case 105:
+ goto st_case_105
+ case 106:
+ goto st_case_106
+ case 107:
+ goto st_case_107
+ case 108:
+ goto st_case_108
+ case 109:
+ goto st_case_109
+ case 110:
+ goto st_case_110
+ case 111:
+ goto st_case_111
+ case 112:
+ goto st_case_112
+ case 113:
+ goto st_case_113
+ case 114:
+ goto st_case_114
+ case 115:
+ goto st_case_115
+ case 116:
+ goto st_case_116
+ case 117:
+ goto st_case_117
+ case 118:
+ goto st_case_118
+ case 119:
+ goto st_case_119
+ case 120:
+ goto st_case_120
+ case 121:
+ goto st_case_121
+ case 122:
+ goto st_case_122
+ case 123:
+ goto st_case_123
+ case 124:
+ goto st_case_124
+ case 125:
+ goto st_case_125
+ case 126:
+ goto st_case_126
+ case 127:
+ goto st_case_127
+ case 128:
+ goto st_case_128
+ case 129:
+ goto st_case_129
+ case 130:
+ goto st_case_130
+ case 131:
+ goto st_case_131
+ case 132:
+ goto st_case_132
+ case 133:
+ goto st_case_133
+ case 134:
+ goto st_case_134
+ case 135:
+ goto st_case_135
+ case 136:
+ goto st_case_136
+ case 137:
+ goto st_case_137
+ case 138:
+ goto st_case_138
+ case 139:
+ goto st_case_139
+ case 140:
+ goto st_case_140
+ case 141:
+ goto st_case_141
+ case 142:
+ goto st_case_142
+ case 143:
+ goto st_case_143
+ case 144:
+ goto st_case_144
+ case 145:
+ goto st_case_145
+ case 451:
+ goto st_case_451
+ case 146:
+ goto st_case_146
+ case 147:
+ goto st_case_147
+ case 148:
+ goto st_case_148
+ case 149:
+ goto st_case_149
+ case 150:
+ goto st_case_150
+ case 151:
+ goto st_case_151
+ case 152:
+ goto st_case_152
+ case 153:
+ goto st_case_153
+ case 154:
+ goto st_case_154
+ case 155:
+ goto st_case_155
+ case 156:
+ goto st_case_156
+ case 157:
+ goto st_case_157
+ case 158:
+ goto st_case_158
+ case 159:
+ goto st_case_159
+ case 160:
+ goto st_case_160
+ case 452:
+ goto st_case_452
+ case 161:
+ goto st_case_161
+ case 162:
+ goto st_case_162
+ case 163:
+ goto st_case_163
+ case 164:
+ goto st_case_164
+ case 165:
+ goto st_case_165
+ case 166:
+ goto st_case_166
+ case 167:
+ goto st_case_167
+ case 168:
+ goto st_case_168
+ case 169:
+ goto st_case_169
+ case 170:
+ goto st_case_170
+ case 171:
+ goto st_case_171
+ case 172:
+ goto st_case_172
+ case 173:
+ goto st_case_173
+ case 174:
+ goto st_case_174
+ case 175:
+ goto st_case_175
+ case 176:
+ goto st_case_176
+ case 177:
+ goto st_case_177
+ case 178:
+ goto st_case_178
+ case 179:
+ goto st_case_179
+ case 180:
+ goto st_case_180
+ case 181:
+ goto st_case_181
+ case 182:
+ goto st_case_182
+ case 183:
+ goto st_case_183
+ case 184:
+ goto st_case_184
+ case 185:
+ goto st_case_185
+ case 186:
+ goto st_case_186
+ case 187:
+ goto st_case_187
+ case 188:
+ goto st_case_188
+ case 189:
+ goto st_case_189
+ case 190:
+ goto st_case_190
+ case 191:
+ goto st_case_191
+ case 192:
+ goto st_case_192
+ case 193:
+ goto st_case_193
+ case 194:
+ goto st_case_194
+ case 195:
+ goto st_case_195
+ case 196:
+ goto st_case_196
+ case 197:
+ goto st_case_197
+ case 198:
+ goto st_case_198
+ case 199:
+ goto st_case_199
+ case 200:
+ goto st_case_200
+ case 201:
+ goto st_case_201
+ case 202:
+ goto st_case_202
+ case 203:
+ goto st_case_203
+ case 204:
+ goto st_case_204
+ case 205:
+ goto st_case_205
+ case 206:
+ goto st_case_206
+ case 207:
+ goto st_case_207
+ case 208:
+ goto st_case_208
+ case 209:
+ goto st_case_209
+ case 210:
+ goto st_case_210
+ case 211:
+ goto st_case_211
+ case 212:
+ goto st_case_212
+ case 213:
+ goto st_case_213
+ case 214:
+ goto st_case_214
+ case 215:
+ goto st_case_215
+ case 216:
+ goto st_case_216
+ case 217:
+ goto st_case_217
+ case 218:
+ goto st_case_218
+ case 219:
+ goto st_case_219
+ case 220:
+ goto st_case_220
+ case 221:
+ goto st_case_221
+ case 222:
+ goto st_case_222
+ case 223:
+ goto st_case_223
+ case 224:
+ goto st_case_224
+ case 225:
+ goto st_case_225
+ case 226:
+ goto st_case_226
+ case 227:
+ goto st_case_227
+ case 228:
+ goto st_case_228
+ case 229:
+ goto st_case_229
+ case 230:
+ goto st_case_230
+ case 231:
+ goto st_case_231
+ case 232:
+ goto st_case_232
+ case 233:
+ goto st_case_233
+ case 234:
+ goto st_case_234
+ case 235:
+ goto st_case_235
+ case 236:
+ goto st_case_236
+ case 237:
+ goto st_case_237
+ case 238:
+ goto st_case_238
+ case 239:
+ goto st_case_239
+ case 240:
+ goto st_case_240
+ case 241:
+ goto st_case_241
+ case 242:
+ goto st_case_242
+ case 243:
+ goto st_case_243
+ case 244:
+ goto st_case_244
+ case 245:
+ goto st_case_245
+ case 246:
+ goto st_case_246
+ case 247:
+ goto st_case_247
+ case 248:
+ goto st_case_248
+ case 249:
+ goto st_case_249
+ case 250:
+ goto st_case_250
+ case 251:
+ goto st_case_251
+ case 252:
+ goto st_case_252
+ case 253:
+ goto st_case_253
+ case 254:
+ goto st_case_254
+ case 255:
+ goto st_case_255
+ case 256:
+ goto st_case_256
+ case 257:
+ goto st_case_257
+ case 258:
+ goto st_case_258
+ case 259:
+ goto st_case_259
+ case 260:
+ goto st_case_260
+ case 261:
+ goto st_case_261
+ case 262:
+ goto st_case_262
+ case 263:
+ goto st_case_263
+ case 264:
+ goto st_case_264
+ case 265:
+ goto st_case_265
+ case 266:
+ goto st_case_266
+ case 267:
+ goto st_case_267
+ case 268:
+ goto st_case_268
+ case 269:
+ goto st_case_269
+ case 270:
+ goto st_case_270
+ case 271:
+ goto st_case_271
+ case 272:
+ goto st_case_272
+ case 273:
+ goto st_case_273
+ case 274:
+ goto st_case_274
+ case 275:
+ goto st_case_275
+ case 276:
+ goto st_case_276
+ case 277:
+ goto st_case_277
+ case 278:
+ goto st_case_278
+ case 279:
+ goto st_case_279
+ case 280:
+ goto st_case_280
+ case 281:
+ goto st_case_281
+ case 282:
+ goto st_case_282
+ case 283:
+ goto st_case_283
+ case 284:
+ goto st_case_284
+ case 285:
+ goto st_case_285
+ case 286:
+ goto st_case_286
+ case 287:
+ goto st_case_287
+ case 288:
+ goto st_case_288
+ case 289:
+ goto st_case_289
+ case 290:
+ goto st_case_290
+ case 291:
+ goto st_case_291
+ case 292:
+ goto st_case_292
+ case 293:
+ goto st_case_293
+ case 294:
+ goto st_case_294
+ case 295:
+ goto st_case_295
+ case 296:
+ goto st_case_296
+ case 297:
+ goto st_case_297
+ case 298:
+ goto st_case_298
+ case 299:
+ goto st_case_299
+ case 300:
+ goto st_case_300
+ case 301:
+ goto st_case_301
+ case 302:
+ goto st_case_302
+ case 303:
+ goto st_case_303
+ case 304:
+ goto st_case_304
+ case 305:
+ goto st_case_305
+ case 306:
+ goto st_case_306
+ case 307:
+ goto st_case_307
+ case 308:
+ goto st_case_308
+ case 309:
+ goto st_case_309
+ case 310:
+ goto st_case_310
+ case 311:
+ goto st_case_311
+ case 312:
+ goto st_case_312
+ case 313:
+ goto st_case_313
+ case 314:
+ goto st_case_314
+ case 315:
+ goto st_case_315
+ case 316:
+ goto st_case_316
+ case 317:
+ goto st_case_317
+ case 318:
+ goto st_case_318
+ case 319:
+ goto st_case_319
+ case 320:
+ goto st_case_320
+ case 321:
+ goto st_case_321
+ case 322:
+ goto st_case_322
+ case 323:
+ goto st_case_323
+ case 324:
+ goto st_case_324
+ case 325:
+ goto st_case_325
+ case 326:
+ goto st_case_326
+ case 327:
+ goto st_case_327
+ case 328:
+ goto st_case_328
+ case 329:
+ goto st_case_329
+ case 330:
+ goto st_case_330
+ case 331:
+ goto st_case_331
+ case 332:
+ goto st_case_332
+ case 333:
+ goto st_case_333
+ case 334:
+ goto st_case_334
+ case 335:
+ goto st_case_335
+ case 336:
+ goto st_case_336
+ case 337:
+ goto st_case_337
+ case 338:
+ goto st_case_338
+ case 339:
+ goto st_case_339
+ case 340:
+ goto st_case_340
+ case 341:
+ goto st_case_341
+ case 342:
+ goto st_case_342
+ case 343:
+ goto st_case_343
+ case 344:
+ goto st_case_344
+ case 345:
+ goto st_case_345
+ case 346:
+ goto st_case_346
+ case 347:
+ goto st_case_347
+ case 348:
+ goto st_case_348
+ case 349:
+ goto st_case_349
+ case 350:
+ goto st_case_350
+ case 351:
+ goto st_case_351
+ case 352:
+ goto st_case_352
+ case 353:
+ goto st_case_353
+ case 354:
+ goto st_case_354
+ case 355:
+ goto st_case_355
+ case 356:
+ goto st_case_356
+ case 357:
+ goto st_case_357
+ case 358:
+ goto st_case_358
+ case 359:
+ goto st_case_359
+ case 360:
+ goto st_case_360
+ case 361:
+ goto st_case_361
+ case 362:
+ goto st_case_362
+ case 363:
+ goto st_case_363
+ case 364:
+ goto st_case_364
+ case 365:
+ goto st_case_365
+ case 366:
+ goto st_case_366
+ case 367:
+ goto st_case_367
+ case 368:
+ goto st_case_368
+ case 369:
+ goto st_case_369
+ case 370:
+ goto st_case_370
+ case 371:
+ goto st_case_371
+ case 372:
+ goto st_case_372
+ case 373:
+ goto st_case_373
+ case 374:
+ goto st_case_374
+ case 375:
+ goto st_case_375
+ case 376:
+ goto st_case_376
+ case 377:
+ goto st_case_377
+ case 378:
+ goto st_case_378
+ case 379:
+ goto st_case_379
+ case 380:
+ goto st_case_380
+ case 381:
+ goto st_case_381
+ case 382:
+ goto st_case_382
+ case 383:
+ goto st_case_383
+ case 384:
+ goto st_case_384
+ case 385:
+ goto st_case_385
+ case 386:
+ goto st_case_386
+ case 387:
+ goto st_case_387
+ case 388:
+ goto st_case_388
+ case 389:
+ goto st_case_389
+ case 390:
+ goto st_case_390
+ case 391:
+ goto st_case_391
+ case 392:
+ goto st_case_392
+ case 393:
+ goto st_case_393
+ case 394:
+ goto st_case_394
+ case 395:
+ goto st_case_395
+ case 396:
+ goto st_case_396
+ case 397:
+ goto st_case_397
+ case 398:
+ goto st_case_398
+ case 399:
+ goto st_case_399
+ case 400:
+ goto st_case_400
+ case 401:
+ goto st_case_401
+ case 402:
+ goto st_case_402
+ case 403:
+ goto st_case_403
+ case 404:
+ goto st_case_404
+ case 405:
+ goto st_case_405
+ case 406:
+ goto st_case_406
+ case 407:
+ goto st_case_407
+ case 408:
+ goto st_case_408
+ case 409:
+ goto st_case_409
+ case 410:
+ goto st_case_410
+ case 411:
+ goto st_case_411
+ case 412:
+ goto st_case_412
+ case 413:
+ goto st_case_413
+ case 414:
+ goto st_case_414
+ case 415:
+ goto st_case_415
+ case 416:
+ goto st_case_416
+ case 417:
+ goto st_case_417
+ case 418:
+ goto st_case_418
+ case 419:
+ goto st_case_419
+ case 420:
+ goto st_case_420
+ case 421:
+ goto st_case_421
+ case 422:
+ goto st_case_422
+ case 423:
+ goto st_case_423
+ case 424:
+ goto st_case_424
+ case 425:
+ goto st_case_425
+ case 426:
+ goto st_case_426
+ case 427:
+ goto st_case_427
+ case 428:
+ goto st_case_428
+ case 429:
+ goto st_case_429
+ case 430:
+ goto st_case_430
+ case 431:
+ goto st_case_431
+ case 432:
+ goto st_case_432
+ case 433:
+ goto st_case_433
+ case 434:
+ goto st_case_434
+ case 435:
+ goto st_case_435
+ case 436:
+ goto st_case_436
+ case 437:
+ goto st_case_437
+ case 438:
+ goto st_case_438
+ case 439:
+ goto st_case_439
+ case 440:
+ goto st_case_440
+ case 441:
+ goto st_case_441
+ case 442:
+ goto st_case_442
+ case 443:
+ goto st_case_443
+ case 444:
+ goto st_case_444
+ case 445:
+ goto st_case_445
+ }
+ goto st_out
+tr1:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 71 "parseqt.rl"
+
+te = p+1
+
+ goto st447
+tr24:
+// line 71 "parseqt.rl"
+
+p = (te) - 1
+
+ goto st447
+tr25:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 62 "parseqt.rl"
+
+te = p+1
+{
+ if data[m0:m1] == "QOpenGLFunctions" {
+ header.Class = data[m0:m1]
+ foundclass++
+ }
+ {goto st450 }
+ }
+ goto st447
+tr60:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 55 "parseqt.rl"
+
+te = p+1
+{
+ header.Class = data[m0:m1]
+ foundclass++
+ {goto st450 }
+ }
+ goto st447
+tr529:
+// line 71 "parseqt.rl"
+
+te = p
+p--
+
+ goto st447
+ st447:
+// line 1 "NONE"
+
+ts = 0
+
+ if p++; p == pe {
+ goto _test_eof447
+ }
+ st_case_447:
+// line 1 "NONE"
+
+ts = p
+
+// line 1047 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 99:
+ goto st2
+ }
+ goto st1
+ st1:
+ if p++; p == pe {
+ goto _test_eof1
+ }
+ st_case_1:
+ if data[p] == 10 {
+ goto tr1
+ }
+ goto st1
+ st2:
+ if p++; p == pe {
+ goto _test_eof2
+ }
+ st_case_2:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 108:
+ goto st3
+ }
+ goto st1
+ st3:
+ if p++; p == pe {
+ goto _test_eof3
+ }
+ st_case_3:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 97:
+ goto st4
+ }
+ goto st1
+ st4:
+ if p++; p == pe {
+ goto _test_eof4
+ }
+ st_case_4:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 115:
+ goto st5
+ }
+ goto st1
+ st5:
+ if p++; p == pe {
+ goto _test_eof5
+ }
+ st_case_5:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 115:
+ goto st6
+ }
+ goto st1
+ st6:
+ if p++; p == pe {
+ goto _test_eof6
+ }
+ st_case_6:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 32:
+ goto st7
+ }
+ goto st1
+ st7:
+ if p++; p == pe {
+ goto _test_eof7
+ }
+ st_case_7:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 81:
+ goto st8
+ }
+ goto st1
+ st8:
+ if p++; p == pe {
+ goto _test_eof8
+ }
+ st_case_8:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 95:
+ goto st9
+ }
+ goto st1
+ st9:
+ if p++; p == pe {
+ goto _test_eof9
+ }
+ st_case_9:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 71:
+ goto st10
+ }
+ goto st1
+ st10:
+ if p++; p == pe {
+ goto _test_eof10
+ }
+ st_case_10:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 85:
+ goto st11
+ }
+ goto st1
+ st11:
+ if p++; p == pe {
+ goto _test_eof11
+ }
+ st_case_11:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 73:
+ goto st12
+ }
+ goto st1
+ st12:
+ if p++; p == pe {
+ goto _test_eof12
+ }
+ st_case_12:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 95:
+ goto st13
+ }
+ goto st1
+ st13:
+ if p++; p == pe {
+ goto _test_eof13
+ }
+ st_case_13:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 69:
+ goto st14
+ }
+ goto st1
+ st14:
+ if p++; p == pe {
+ goto _test_eof14
+ }
+ st_case_14:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 88:
+ goto st15
+ }
+ goto st1
+ st15:
+ if p++; p == pe {
+ goto _test_eof15
+ }
+ st_case_15:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 80:
+ goto st16
+ }
+ goto st1
+ st16:
+ if p++; p == pe {
+ goto _test_eof16
+ }
+ st_case_16:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 79:
+ goto st17
+ }
+ goto st1
+ st17:
+ if p++; p == pe {
+ goto _test_eof17
+ }
+ st_case_17:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 82:
+ goto st18
+ }
+ goto st1
+ st18:
+ if p++; p == pe {
+ goto _test_eof18
+ }
+ st_case_18:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 84:
+ goto st19
+ }
+ goto st1
+ st19:
+ if p++; p == pe {
+ goto _test_eof19
+ }
+ st_case_19:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 32:
+ goto st20
+ }
+ goto st1
+ st20:
+ if p++; p == pe {
+ goto _test_eof20
+ }
+ st_case_20:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 95:
+ goto tr20
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr20
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr20
+ }
+ default:
+ goto tr20
+ }
+ goto st1
+tr20:
+// line 54 "parseqt.rl"
+
+ m0 = p
+// line 61 "parseqt.rl"
+
+ m0 = p
+ goto st21
+ st21:
+ if p++; p == pe {
+ goto _test_eof21
+ }
+ st_case_21:
+// line 1317 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto tr21
+ case 32:
+ goto tr22
+ case 95:
+ goto st21
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st21
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st21
+ }
+ default:
+ goto st21
+ }
+ goto st1
+tr21:
+// line 1 "NONE"
+
+te = p+1
+
+// line 61 "parseqt.rl"
+
+ m1 = p
+// line 47 "parseqt.rl"
+
+ curline++
+ goto st448
+ st448:
+ if p++; p == pe {
+ goto _test_eof448
+ }
+ st_case_448:
+// line 1356 "parseqt.go"
+ if data[p] == 123 {
+ goto st22
+ }
+ goto tr529
+ st22:
+ if p++; p == pe {
+ goto _test_eof22
+ }
+ st_case_22:
+ if data[p] == 10 {
+ goto tr25
+ }
+ goto tr24
+tr22:
+// line 54 "parseqt.rl"
+
+ m1 = p
+ goto st23
+ st23:
+ if p++; p == pe {
+ goto _test_eof23
+ }
+ st_case_23:
+// line 1380 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 58:
+ goto st24
+ }
+ goto st1
+ st24:
+ if p++; p == pe {
+ goto _test_eof24
+ }
+ st_case_24:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 32:
+ goto st25
+ }
+ goto st1
+ st25:
+ if p++; p == pe {
+ goto _test_eof25
+ }
+ st_case_25:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 112:
+ goto st26
+ }
+ goto st1
+ st26:
+ if p++; p == pe {
+ goto _test_eof26
+ }
+ st_case_26:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 117:
+ goto st27
+ }
+ goto st1
+ st27:
+ if p++; p == pe {
+ goto _test_eof27
+ }
+ st_case_27:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 98:
+ goto st28
+ }
+ goto st1
+ st28:
+ if p++; p == pe {
+ goto _test_eof28
+ }
+ st_case_28:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 108:
+ goto st29
+ }
+ goto st1
+ st29:
+ if p++; p == pe {
+ goto _test_eof29
+ }
+ st_case_29:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 105:
+ goto st30
+ }
+ goto st1
+ st30:
+ if p++; p == pe {
+ goto _test_eof30
+ }
+ st_case_30:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 99:
+ goto st31
+ }
+ goto st1
+ st31:
+ if p++; p == pe {
+ goto _test_eof31
+ }
+ st_case_31:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 32:
+ goto st32
+ }
+ goto st1
+ st32:
+ if p++; p == pe {
+ goto _test_eof32
+ }
+ st_case_32:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 81:
+ goto st33
+ }
+ goto st1
+ st33:
+ if p++; p == pe {
+ goto _test_eof33
+ }
+ st_case_33:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 65:
+ goto st34
+ }
+ goto st1
+ st34:
+ if p++; p == pe {
+ goto _test_eof34
+ }
+ st_case_34:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 98:
+ goto st35
+ }
+ goto st1
+ st35:
+ if p++; p == pe {
+ goto _test_eof35
+ }
+ st_case_35:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 115:
+ goto st36
+ }
+ goto st1
+ st36:
+ if p++; p == pe {
+ goto _test_eof36
+ }
+ st_case_36:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 116:
+ goto st37
+ }
+ goto st1
+ st37:
+ if p++; p == pe {
+ goto _test_eof37
+ }
+ st_case_37:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 114:
+ goto st38
+ }
+ goto st1
+ st38:
+ if p++; p == pe {
+ goto _test_eof38
+ }
+ st_case_38:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 97:
+ goto st39
+ }
+ goto st1
+ st39:
+ if p++; p == pe {
+ goto _test_eof39
+ }
+ st_case_39:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 99:
+ goto st40
+ }
+ goto st1
+ st40:
+ if p++; p == pe {
+ goto _test_eof40
+ }
+ st_case_40:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 116:
+ goto st41
+ }
+ goto st1
+ st41:
+ if p++; p == pe {
+ goto _test_eof41
+ }
+ st_case_41:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 79:
+ goto st42
+ }
+ goto st1
+ st42:
+ if p++; p == pe {
+ goto _test_eof42
+ }
+ st_case_42:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 112:
+ goto st43
+ }
+ goto st1
+ st43:
+ if p++; p == pe {
+ goto _test_eof43
+ }
+ st_case_43:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 101:
+ goto st44
+ }
+ goto st1
+ st44:
+ if p++; p == pe {
+ goto _test_eof44
+ }
+ st_case_44:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 110:
+ goto st45
+ }
+ goto st1
+ st45:
+ if p++; p == pe {
+ goto _test_eof45
+ }
+ st_case_45:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 71:
+ goto st46
+ }
+ goto st1
+ st46:
+ if p++; p == pe {
+ goto _test_eof46
+ }
+ st_case_46:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 76:
+ goto st47
+ }
+ goto st1
+ st47:
+ if p++; p == pe {
+ goto _test_eof47
+ }
+ st_case_47:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 70:
+ goto st48
+ }
+ goto st1
+ st48:
+ if p++; p == pe {
+ goto _test_eof48
+ }
+ st_case_48:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 117:
+ goto st49
+ }
+ goto st1
+ st49:
+ if p++; p == pe {
+ goto _test_eof49
+ }
+ st_case_49:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 110:
+ goto st50
+ }
+ goto st1
+ st50:
+ if p++; p == pe {
+ goto _test_eof50
+ }
+ st_case_50:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 99:
+ goto st51
+ }
+ goto st1
+ st51:
+ if p++; p == pe {
+ goto _test_eof51
+ }
+ st_case_51:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 116:
+ goto st52
+ }
+ goto st1
+ st52:
+ if p++; p == pe {
+ goto _test_eof52
+ }
+ st_case_52:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 105:
+ goto st53
+ }
+ goto st1
+ st53:
+ if p++; p == pe {
+ goto _test_eof53
+ }
+ st_case_53:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 111:
+ goto st54
+ }
+ goto st1
+ st54:
+ if p++; p == pe {
+ goto _test_eof54
+ }
+ st_case_54:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 110:
+ goto st55
+ }
+ goto st1
+ st55:
+ if p++; p == pe {
+ goto _test_eof55
+ }
+ st_case_55:
+ switch data[p] {
+ case 10:
+ goto tr1
+ case 115:
+ goto st56
+ }
+ goto st1
+ st56:
+ if p++; p == pe {
+ goto _test_eof56
+ }
+ st_case_56:
+ if data[p] == 10 {
+ goto tr59
+ }
+ goto st1
+tr59:
+// line 1 "NONE"
+
+te = p+1
+
+// line 47 "parseqt.rl"
+
+ curline++
+ goto st449
+ st449:
+ if p++; p == pe {
+ goto _test_eof449
+ }
+ st_case_449:
+// line 1795 "parseqt.go"
+ if data[p] == 123 {
+ goto st57
+ }
+ goto tr529
+ st57:
+ if p++; p == pe {
+ goto _test_eof57
+ }
+ st_case_57:
+ if data[p] == 10 {
+ goto tr60
+ }
+ goto tr24
+ st446:
+// line 1 "NONE"
+
+ts = 0
+
+ if p++; p == pe {
+ goto _test_eof446
+ }
+ st_case_446:
+// line 1818 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto tr526
+ case 59:
+ goto tr527
+ }
+ goto st446
+tr526:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 157 "parseqt.rl"
+
+ {goto st447 }
+ goto st453
+ st453:
+ if p++; p == pe {
+ goto _test_eof453
+ }
+ st_case_453:
+// line 1839 "parseqt.go"
+ goto st0
+st_case_0:
+ st0:
+ cs = 0
+ goto _out
+tr527:
+// line 157 "parseqt.rl"
+
+ {goto st447 }
+ goto st454
+ st454:
+ if p++; p == pe {
+ goto _test_eof454
+ }
+ st_case_454:
+// line 1855 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto tr526
+ case 59:
+ goto tr527
+ }
+ goto st446
+tr63:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 147 "parseqt.rl"
+
+te = p+1
+{
+ // Reset heading comment.
+ heading = ""
+
+ // Start new line block.
+ lineblock++
+ }
+ goto st450
+tr79:
+// line 76 "parseqt.rl"
+
+ m0 = p
+// line 47 "parseqt.rl"
+
+ curline++
+// line 77 "parseqt.rl"
+
+te = p+1
+{
+ heading = data[m0:m1]
+ _ = heading
+ lineblock++
+ }
+ goto st450
+tr81:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 77 "parseqt.rl"
+
+te = p+1
+{
+ heading = data[m0:m1]
+ _ = heading
+ lineblock++
+ }
+ goto st450
+tr96:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 128 "parseqt.rl"
+
+te = p+1
+
+ goto st450
+tr102:
+// line 1 "NONE"
+
+ switch act {
+ case 0:
+ {{goto st0 }}
+ case 10:
+ {p = (te) - 1
+
+ if (inpublic) {
+ header.Func = append(header.Func, f)
+ }
+ }
+ }
+
+ goto st450
+tr130:
+// line 114 "parseqt.rl"
+
+te = p+1
+{
+ if (inpublic) {
+ header.Func = append(header.Func, f)
+ }
+ }
+ goto st450
+tr250:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 84 "parseqt.rl"
+
+te = p+1
+{
+ if data[m0:m1] != header.Class {
+ {p++; cs = 450; goto _out }
+ }
+ }
+ goto st450
+tr279:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 131 "parseqt.rl"
+
+te = p+1
+
+ goto st450
+tr315:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 91 "parseqt.rl"
+
+te = p+1
+
+ goto st450
+tr398:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 124 "parseqt.rl"
+
+te = p+1
+
+ goto st450
+tr416:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 94 "parseqt.rl"
+
+te = p+1
+
+ goto st450
+tr433:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 102 "parseqt.rl"
+
+te = p+1
+{
+ inpublic = false
+ }
+ goto st450
+tr445:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 98 "parseqt.rl"
+
+te = p+1
+{
+ inpublic = true
+ }
+ goto st450
+tr481:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 140 "parseqt.rl"
+
+te = p+1
+{
+ foundclass++;
+ {goto st447 }
+ }
+ goto st450
+tr519:
+// line 47 "parseqt.rl"
+
+ curline++
+// line 136 "parseqt.rl"
+
+te = p+1
+
+ goto st450
+tr533:
+// line 114 "parseqt.rl"
+
+te = p
+p--
+{
+ if (inpublic) {
+ header.Func = append(header.Func, f)
+ }
+ }
+ goto st450
+ st450:
+// line 1 "NONE"
+
+ts = 0
+
+// line 1 "NONE"
+
+act = 0
+
+ if p++; p == pe {
+ goto _test_eof450
+ }
+ st_case_450:
+// line 1 "NONE"
+
+ts = p
+
+// line 2062 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st58
+ case 10:
+ goto tr63
+ case 32:
+ goto st58
+ case 35:
+ goto st405
+ case 47:
+ goto st59
+ case 58:
+ goto st188
+ case 81:
+ goto tr67
+ case 95:
+ goto tr65
+ case 98:
+ goto tr68
+ case 99:
+ goto tr69
+ case 101:
+ goto tr70
+ case 102:
+ goto tr71
+ case 112:
+ goto tr72
+ case 115:
+ goto tr73
+ case 125:
+ goto st401
+ case 126:
+ goto st403
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr65
+ }
+ default:
+ goto tr65
+ }
+ goto st0
+ st58:
+ if p++; p == pe {
+ goto _test_eof58
+ }
+ st_case_58:
+ switch data[p] {
+ case 9:
+ goto st58
+ case 10:
+ goto tr63
+ case 32:
+ goto st58
+ case 47:
+ goto st59
+ case 58:
+ goto st188
+ case 81:
+ goto tr67
+ case 95:
+ goto tr65
+ case 98:
+ goto tr68
+ case 99:
+ goto tr69
+ case 101:
+ goto tr70
+ case 102:
+ goto tr71
+ case 112:
+ goto tr72
+ case 115:
+ goto tr73
+ case 125:
+ goto st401
+ case 126:
+ goto st403
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr65
+ }
+ default:
+ goto tr65
+ }
+ goto st0
+ st59:
+ if p++; p == pe {
+ goto _test_eof59
+ }
+ st_case_59:
+ if data[p] == 47 {
+ goto st60
+ }
+ goto st0
+tr78:
+// line 76 "parseqt.rl"
+
+ m0 = p
+// line 76 "parseqt.rl"
+
+ m1 = p
+ goto st60
+ st60:
+ if p++; p == pe {
+ goto _test_eof60
+ }
+ st_case_60:
+// line 2182 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr78
+ case 10:
+ goto tr79
+ case 32:
+ goto tr78
+ }
+ goto tr77
+tr77:
+// line 76 "parseqt.rl"
+
+ m0 = p
+// line 76 "parseqt.rl"
+
+ m1 = p
+ goto st61
+tr80:
+// line 76 "parseqt.rl"
+
+ m1 = p
+ goto st61
+ st61:
+ if p++; p == pe {
+ goto _test_eof61
+ }
+ st_case_61:
+// line 2210 "parseqt.go"
+ if data[p] == 10 {
+ goto tr81
+ }
+ goto tr80
+tr65:
+// line 84 "parseqt.rl"
+
+ m0 = p
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st62
+ st62:
+ if p++; p == pe {
+ goto _test_eof62
+ }
+ st_case_62:
+// line 2228 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+tr82:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st63
+ st63:
+ if p++; p == pe {
+ goto _test_eof63
+ }
+ st_case_63:
+// line 2266 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st63
+ case 32:
+ goto st63
+ case 42:
+ goto tr87
+ case 95:
+ goto st65
+ case 99:
+ goto st134
+ case 103:
+ goto tr90
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+tr84:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+// line 107 "parseqt.rl"
+
+ m4++
+// line 127 "parseqt.rl"
+
+ m4++
+ goto st64
+tr87:
+// line 107 "parseqt.rl"
+
+ m4++
+// line 127 "parseqt.rl"
+
+ m4++
+ goto st64
+ st64:
+ if p++; p == pe {
+ goto _test_eof64
+ }
+ st_case_64:
+// line 2318 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st63
+ case 32:
+ goto st63
+ case 42:
+ goto tr87
+ case 95:
+ goto st65
+ case 103:
+ goto tr90
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st65:
+ if p++; p == pe {
+ goto _test_eof65
+ }
+ st_case_65:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st66:
+ if p++; p == pe {
+ goto _test_eof66
+ }
+ st_case_66:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 59:
+ goto st67
+ case 99:
+ goto st68
+ case 123:
+ goto st73
+ }
+ goto st0
+ st67:
+ if p++; p == pe {
+ goto _test_eof67
+ }
+ st_case_67:
+ switch data[p] {
+ case 9:
+ goto st67
+ case 10:
+ goto tr96
+ case 32:
+ goto st67
+ }
+ goto st0
+ st68:
+ if p++; p == pe {
+ goto _test_eof68
+ }
+ st_case_68:
+ if data[p] == 111 {
+ goto st69
+ }
+ goto st0
+ st69:
+ if p++; p == pe {
+ goto _test_eof69
+ }
+ st_case_69:
+ if data[p] == 110 {
+ goto st70
+ }
+ goto st0
+ st70:
+ if p++; p == pe {
+ goto _test_eof70
+ }
+ st_case_70:
+ if data[p] == 115 {
+ goto st71
+ }
+ goto st0
+ st71:
+ if p++; p == pe {
+ goto _test_eof71
+ }
+ st_case_71:
+ if data[p] == 116 {
+ goto st72
+ }
+ goto st0
+ st72:
+ if p++; p == pe {
+ goto _test_eof72
+ }
+ st_case_72:
+ switch data[p] {
+ case 9:
+ goto st72
+ case 32:
+ goto st72
+ case 59:
+ goto st67
+ case 123:
+ goto st73
+ }
+ goto st0
+ st73:
+ if p++; p == pe {
+ goto _test_eof73
+ }
+ st_case_73:
+ switch data[p] {
+ case 10:
+ goto st0
+ case 125:
+ goto st74
+ }
+ goto st73
+ st74:
+ if p++; p == pe {
+ goto _test_eof74
+ }
+ st_case_74:
+ switch data[p] {
+ case 9:
+ goto st74
+ case 10:
+ goto tr96
+ case 32:
+ goto st74
+ case 125:
+ goto st74
+ }
+ goto st73
+ st75:
+ if p++; p == pe {
+ goto _test_eof75
+ }
+ st_case_75:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st76
+ }
+ goto st75
+ st76:
+ if p++; p == pe {
+ goto _test_eof76
+ }
+ st_case_76:
+ switch data[p] {
+ case 9:
+ goto st76
+ case 10:
+ goto tr102
+ case 32:
+ goto st76
+ case 41:
+ goto st76
+ case 59:
+ goto st77
+ case 99:
+ goto st78
+ case 123:
+ goto st83
+ }
+ goto st75
+ st77:
+ if p++; p == pe {
+ goto _test_eof77
+ }
+ st_case_77:
+ switch data[p] {
+ case 9:
+ goto st77
+ case 10:
+ goto tr96
+ case 32:
+ goto st77
+ case 41:
+ goto st76
+ }
+ goto st75
+ st78:
+ if p++; p == pe {
+ goto _test_eof78
+ }
+ st_case_78:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st76
+ case 111:
+ goto st79
+ }
+ goto st75
+ st79:
+ if p++; p == pe {
+ goto _test_eof79
+ }
+ st_case_79:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st76
+ case 110:
+ goto st80
+ }
+ goto st75
+ st80:
+ if p++; p == pe {
+ goto _test_eof80
+ }
+ st_case_80:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st76
+ case 115:
+ goto st81
+ }
+ goto st75
+ st81:
+ if p++; p == pe {
+ goto _test_eof81
+ }
+ st_case_81:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st76
+ case 116:
+ goto st82
+ }
+ goto st75
+ st82:
+ if p++; p == pe {
+ goto _test_eof82
+ }
+ st_case_82:
+ switch data[p] {
+ case 9:
+ goto st82
+ case 10:
+ goto tr102
+ case 32:
+ goto st82
+ case 41:
+ goto st76
+ case 59:
+ goto st77
+ case 123:
+ goto st83
+ }
+ goto st75
+ st83:
+ if p++; p == pe {
+ goto _test_eof83
+ }
+ st_case_83:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st84
+ case 125:
+ goto st85
+ }
+ goto st83
+ st84:
+ if p++; p == pe {
+ goto _test_eof84
+ }
+ st_case_84:
+ switch data[p] {
+ case 9:
+ goto st84
+ case 10:
+ goto tr102
+ case 32:
+ goto st84
+ case 41:
+ goto st84
+ case 59:
+ goto st85
+ case 99:
+ goto st86
+ case 125:
+ goto st85
+ }
+ goto st83
+ st85:
+ if p++; p == pe {
+ goto _test_eof85
+ }
+ st_case_85:
+ switch data[p] {
+ case 9:
+ goto st85
+ case 10:
+ goto tr96
+ case 32:
+ goto st85
+ case 41:
+ goto st84
+ case 125:
+ goto st85
+ }
+ goto st83
+ st86:
+ if p++; p == pe {
+ goto _test_eof86
+ }
+ st_case_86:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st84
+ case 111:
+ goto st87
+ case 125:
+ goto st85
+ }
+ goto st83
+ st87:
+ if p++; p == pe {
+ goto _test_eof87
+ }
+ st_case_87:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st84
+ case 110:
+ goto st88
+ case 125:
+ goto st85
+ }
+ goto st83
+ st88:
+ if p++; p == pe {
+ goto _test_eof88
+ }
+ st_case_88:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st84
+ case 115:
+ goto st89
+ case 125:
+ goto st85
+ }
+ goto st83
+ st89:
+ if p++; p == pe {
+ goto _test_eof89
+ }
+ st_case_89:
+ switch data[p] {
+ case 10:
+ goto tr102
+ case 41:
+ goto st84
+ case 116:
+ goto st90
+ case 125:
+ goto st85
+ }
+ goto st83
+ st90:
+ if p++; p == pe {
+ goto _test_eof90
+ }
+ st_case_90:
+ switch data[p] {
+ case 9:
+ goto st90
+ case 10:
+ goto tr102
+ case 32:
+ goto st90
+ case 41:
+ goto st84
+ case 59:
+ goto st85
+ case 125:
+ goto st85
+ }
+ goto st83
+tr90:
+// line 109 "parseqt.rl"
+
+ m2 = p
+ goto st91
+ st91:
+ if p++; p == pe {
+ goto _test_eof91
+ }
+ st_case_91:
+// line 2762 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 108:
+ goto st92
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st92:
+ if p++; p == pe {
+ goto _test_eof92
+ }
+ st_case_92:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st93
+ case 99:
+ goto st128
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st93
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st93
+ }
+ default:
+ goto st93
+ }
+ goto st0
+ st93:
+ if p++; p == pe {
+ goto _test_eof93
+ }
+ st_case_93:
+ switch data[p] {
+ case 9:
+ goto tr121
+ case 32:
+ goto tr121
+ case 40:
+ goto tr122
+ case 95:
+ goto st93
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st93
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st93
+ }
+ default:
+ goto st93
+ }
+ goto st0
+tr121:
+// line 109 "parseqt.rl"
+
+ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4}
+ goto st94
+ st94:
+ if p++; p == pe {
+ goto _test_eof94
+ }
+ st_case_94:
+// line 2864 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st94
+ case 32:
+ goto st94
+ case 40:
+ goto tr124
+ }
+ goto st0
+tr122:
+// line 109 "parseqt.rl"
+
+ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4}
+// line 109 "parseqt.rl"
+
+ m6 = 0
+ goto st95
+tr124:
+// line 109 "parseqt.rl"
+
+ m6 = 0
+ goto st95
+ st95:
+ if p++; p == pe {
+ goto _test_eof95
+ }
+ st_case_95:
+// line 2892 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st95
+ case 32:
+ goto st95
+ case 41:
+ goto st96
+ case 95:
+ goto tr127
+ case 99:
+ goto tr128
+ case 118:
+ goto tr129
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr127
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr127
+ }
+ default:
+ goto tr127
+ }
+ goto st0
+ st96:
+ if p++; p == pe {
+ goto _test_eof96
+ }
+ st_case_96:
+ switch data[p] {
+ case 9:
+ goto st96
+ case 32:
+ goto st96
+ case 59:
+ goto tr130
+ }
+ goto st0
+tr127:
+// line 111 "parseqt.rl"
+
+ m0 = p
+ goto st97
+ st97:
+ if p++; p == pe {
+ goto _test_eof97
+ }
+ st_case_97:
+// line 2944 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr131
+ case 32:
+ goto tr131
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+tr131:
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st98
+ st98:
+ if p++; p == pe {
+ goto _test_eof98
+ }
+ st_case_98:
+// line 2978 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st98
+ case 32:
+ goto st98
+ case 42:
+ goto tr135
+ case 95:
+ goto tr136
+ case 99:
+ goto tr137
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr136
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr136
+ }
+ default:
+ goto tr136
+ }
+ goto st0
+tr132:
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+// line 111 "parseqt.rl"
+
+ m4++
+ goto st99
+tr135:
+// line 111 "parseqt.rl"
+
+ m4++
+ goto st99
+ st99:
+ if p++; p == pe {
+ goto _test_eof99
+ }
+ st_case_99:
+// line 3022 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st98
+ case 32:
+ goto st98
+ case 42:
+ goto tr135
+ case 95:
+ goto tr136
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr136
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr136
+ }
+ default:
+ goto tr136
+ }
+ goto st0
+tr136:
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st100
+ st100:
+ if p++; p == pe {
+ goto _test_eof100
+ }
+ st_case_100:
+// line 3056 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr138
+ case 32:
+ goto tr138
+ case 41:
+ goto tr139
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st100
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st100
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st100
+ }
+ default:
+ goto st100
+ }
+ goto st0
+tr138:
+// line 111 "parseqt.rl"
+
+ m3 = p
+ goto st101
+ st101:
+ if p++; p == pe {
+ goto _test_eof101
+ }
+ st_case_101:
+// line 3094 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st101
+ case 32:
+ goto st101
+ case 41:
+ goto tr143
+ case 44:
+ goto tr143
+ }
+ goto st0
+tr139:
+// line 111 "parseqt.rl"
+
+ m3 = p
+// line 112 "parseqt.rl"
+
+ f.Param = append(f.Param, Param{Name: data[m2:m3], Type: data[m0:m1], Addr: m4, Array: m5, Const: m6 > 0}); m6 = 0
+ goto st102
+tr143:
+// line 112 "parseqt.rl"
+
+ f.Param = append(f.Param, Param{Name: data[m2:m3], Type: data[m0:m1], Addr: m4, Array: m5, Const: m6 > 0}); m6 = 0
+ goto st102
+ st102:
+ if p++; p == pe {
+ goto _test_eof102
+ }
+ st_case_102:
+// line 3124 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st102
+ case 32:
+ goto st102
+ case 59:
+ goto tr130
+ case 95:
+ goto tr127
+ case 99:
+ goto tr128
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr127
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr127
+ }
+ default:
+ goto tr127
+ }
+ goto st0
+tr128:
+// line 111 "parseqt.rl"
+
+ m0 = p
+ goto st103
+ st103:
+ if p++; p == pe {
+ goto _test_eof103
+ }
+ st_case_103:
+// line 3160 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr131
+ case 32:
+ goto tr131
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ case 111:
+ goto st104
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+ st104:
+ if p++; p == pe {
+ goto _test_eof104
+ }
+ st_case_104:
+ switch data[p] {
+ case 9:
+ goto tr131
+ case 32:
+ goto tr131
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ case 110:
+ goto st105
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+ st105:
+ if p++; p == pe {
+ goto _test_eof105
+ }
+ st_case_105:
+ switch data[p] {
+ case 9:
+ goto tr131
+ case 32:
+ goto tr131
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ case 115:
+ goto st106
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+ st106:
+ if p++; p == pe {
+ goto _test_eof106
+ }
+ st_case_106:
+ switch data[p] {
+ case 9:
+ goto tr131
+ case 32:
+ goto tr131
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ case 116:
+ goto st107
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+ st107:
+ if p++; p == pe {
+ goto _test_eof107
+ }
+ st_case_107:
+ switch data[p] {
+ case 9:
+ goto tr149
+ case 32:
+ goto tr149
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+tr149:
+// line 111 "parseqt.rl"
+
+ m6 = 1
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st108
+ st108:
+ if p++; p == pe {
+ goto _test_eof108
+ }
+ st_case_108:
+// line 3317 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st108
+ case 32:
+ goto st108
+ case 42:
+ goto tr135
+ case 95:
+ goto tr151
+ case 99:
+ goto tr152
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr151
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr151
+ }
+ default:
+ goto tr151
+ }
+ goto st0
+tr166:
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st109
+tr151:
+// line 111 "parseqt.rl"
+
+ m0 = p
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st109
+ st109:
+ if p++; p == pe {
+ goto _test_eof109
+ }
+ st_case_109:
+// line 3361 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr153
+ case 32:
+ goto tr153
+ case 41:
+ goto tr139
+ case 42:
+ goto tr132
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st109
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st109
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st109
+ }
+ default:
+ goto st109
+ }
+ goto st0
+tr161:
+// line 111 "parseqt.rl"
+
+ m3 = p
+ goto st110
+tr153:
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+// line 111 "parseqt.rl"
+
+ m3 = p
+ goto st110
+ st110:
+ if p++; p == pe {
+ goto _test_eof110
+ }
+ st_case_110:
+// line 3409 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st110
+ case 32:
+ goto st110
+ case 41:
+ goto tr143
+ case 42:
+ goto tr135
+ case 44:
+ goto tr143
+ case 95:
+ goto tr136
+ case 99:
+ goto tr137
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr136
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr136
+ }
+ default:
+ goto tr136
+ }
+ goto st0
+tr137:
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st111
+ st111:
+ if p++; p == pe {
+ goto _test_eof111
+ }
+ st_case_111:
+// line 3449 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr138
+ case 32:
+ goto tr138
+ case 41:
+ goto tr139
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st100
+ case 111:
+ goto st114
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st100
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st100
+ }
+ default:
+ goto st100
+ }
+ goto st0
+tr141:
+// line 111 "parseqt.rl"
+
+ m3 = p
+ goto st112
+ st112:
+ if p++; p == pe {
+ goto _test_eof112
+ }
+ st_case_112:
+// line 3489 "parseqt.go"
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr157
+ }
+ goto st0
+tr157:
+// line 111 "parseqt.rl"
+
+ m5 = m5*10 + (int(data[p]) - '0')
+ goto st113
+ st113:
+ if p++; p == pe {
+ goto _test_eof113
+ }
+ st_case_113:
+// line 3504 "parseqt.go"
+ if data[p] == 93 {
+ goto st101
+ }
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr157
+ }
+ goto st0
+ st114:
+ if p++; p == pe {
+ goto _test_eof114
+ }
+ st_case_114:
+ switch data[p] {
+ case 9:
+ goto tr138
+ case 32:
+ goto tr138
+ case 41:
+ goto tr139
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st100
+ case 110:
+ goto st115
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st100
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st100
+ }
+ default:
+ goto st100
+ }
+ goto st0
+ st115:
+ if p++; p == pe {
+ goto _test_eof115
+ }
+ st_case_115:
+ switch data[p] {
+ case 9:
+ goto tr138
+ case 32:
+ goto tr138
+ case 41:
+ goto tr139
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st100
+ case 115:
+ goto st116
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st100
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st100
+ }
+ default:
+ goto st100
+ }
+ goto st0
+ st116:
+ if p++; p == pe {
+ goto _test_eof116
+ }
+ st_case_116:
+ switch data[p] {
+ case 9:
+ goto tr138
+ case 32:
+ goto tr138
+ case 41:
+ goto tr139
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st100
+ case 116:
+ goto st117
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st100
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st100
+ }
+ default:
+ goto st100
+ }
+ goto st0
+ st117:
+ if p++; p == pe {
+ goto _test_eof117
+ }
+ st_case_117:
+ switch data[p] {
+ case 9:
+ goto tr161
+ case 32:
+ goto tr161
+ case 41:
+ goto tr139
+ case 42:
+ goto tr135
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto tr136
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr136
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr136
+ }
+ default:
+ goto tr136
+ }
+ goto st0
+tr152:
+// line 111 "parseqt.rl"
+
+ m0 = p
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st118
+ st118:
+ if p++; p == pe {
+ goto _test_eof118
+ }
+ st_case_118:
+// line 3661 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr153
+ case 32:
+ goto tr153
+ case 41:
+ goto tr139
+ case 42:
+ goto tr132
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st109
+ case 111:
+ goto st119
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st109
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st109
+ }
+ default:
+ goto st109
+ }
+ goto st0
+ st119:
+ if p++; p == pe {
+ goto _test_eof119
+ }
+ st_case_119:
+ switch data[p] {
+ case 9:
+ goto tr153
+ case 32:
+ goto tr153
+ case 41:
+ goto tr139
+ case 42:
+ goto tr132
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st109
+ case 110:
+ goto st120
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st109
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st109
+ }
+ default:
+ goto st109
+ }
+ goto st0
+ st120:
+ if p++; p == pe {
+ goto _test_eof120
+ }
+ st_case_120:
+ switch data[p] {
+ case 9:
+ goto tr153
+ case 32:
+ goto tr153
+ case 41:
+ goto tr139
+ case 42:
+ goto tr132
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st109
+ case 115:
+ goto st121
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st109
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st109
+ }
+ default:
+ goto st109
+ }
+ goto st0
+ st121:
+ if p++; p == pe {
+ goto _test_eof121
+ }
+ st_case_121:
+ switch data[p] {
+ case 9:
+ goto tr153
+ case 32:
+ goto tr153
+ case 41:
+ goto tr139
+ case 42:
+ goto tr132
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto st109
+ case 116:
+ goto st122
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st109
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st109
+ }
+ default:
+ goto st109
+ }
+ goto st0
+ st122:
+ if p++; p == pe {
+ goto _test_eof122
+ }
+ st_case_122:
+ switch data[p] {
+ case 9:
+ goto tr153
+ case 32:
+ goto tr153
+ case 41:
+ goto tr139
+ case 42:
+ goto tr132
+ case 44:
+ goto tr139
+ case 91:
+ goto tr141
+ case 95:
+ goto tr166
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr166
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr166
+ }
+ default:
+ goto tr166
+ }
+ goto st0
+tr129:
+// line 111 "parseqt.rl"
+
+ m0 = p
+ goto st123
+ st123:
+ if p++; p == pe {
+ goto _test_eof123
+ }
+ st_case_123:
+// line 3845 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr131
+ case 32:
+ goto tr131
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ case 111:
+ goto st124
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+ st124:
+ if p++; p == pe {
+ goto _test_eof124
+ }
+ st_case_124:
+ switch data[p] {
+ case 9:
+ goto tr131
+ case 32:
+ goto tr131
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ case 105:
+ goto st125
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+ st125:
+ if p++; p == pe {
+ goto _test_eof125
+ }
+ st_case_125:
+ switch data[p] {
+ case 9:
+ goto tr131
+ case 32:
+ goto tr131
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ case 100:
+ goto st126
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+ st126:
+ if p++; p == pe {
+ goto _test_eof126
+ }
+ st_case_126:
+ switch data[p] {
+ case 9:
+ goto tr170
+ case 32:
+ goto tr170
+ case 41:
+ goto st96
+ case 42:
+ goto tr132
+ case 95:
+ goto st97
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st97
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st97
+ }
+ default:
+ goto st97
+ }
+ goto st0
+tr170:
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st127
+ st127:
+ if p++; p == pe {
+ goto _test_eof127
+ }
+ st_case_127:
+// line 3971 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st127
+ case 32:
+ goto st127
+ case 41:
+ goto st96
+ case 42:
+ goto tr135
+ case 95:
+ goto tr136
+ case 99:
+ goto tr137
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr136
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr136
+ }
+ default:
+ goto tr136
+ }
+ goto st0
+ st128:
+ if p++; p == pe {
+ goto _test_eof128
+ }
+ st_case_128:
+ switch data[p] {
+ case 9:
+ goto tr121
+ case 32:
+ goto tr121
+ case 40:
+ goto tr122
+ case 95:
+ goto st93
+ case 111:
+ goto st129
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st93
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st93
+ }
+ default:
+ goto st93
+ }
+ goto st0
+ st129:
+ if p++; p == pe {
+ goto _test_eof129
+ }
+ st_case_129:
+ switch data[p] {
+ case 9:
+ goto tr121
+ case 32:
+ goto tr121
+ case 40:
+ goto tr122
+ case 95:
+ goto st93
+ case 110:
+ goto st130
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st93
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st93
+ }
+ default:
+ goto st93
+ }
+ goto st0
+ st130:
+ if p++; p == pe {
+ goto _test_eof130
+ }
+ st_case_130:
+ switch data[p] {
+ case 9:
+ goto tr121
+ case 32:
+ goto tr121
+ case 40:
+ goto tr122
+ case 95:
+ goto st93
+ case 115:
+ goto st131
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st93
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st93
+ }
+ default:
+ goto st93
+ }
+ goto st0
+ st131:
+ if p++; p == pe {
+ goto _test_eof131
+ }
+ st_case_131:
+ switch data[p] {
+ case 9:
+ goto tr121
+ case 32:
+ goto tr121
+ case 40:
+ goto tr122
+ case 95:
+ goto st93
+ case 116:
+ goto st132
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st93
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st93
+ }
+ default:
+ goto st93
+ }
+ goto st0
+ st132:
+ if p++; p == pe {
+ goto _test_eof132
+ }
+ st_case_132:
+ switch data[p] {
+ case 9:
+ goto tr176
+ case 32:
+ goto tr176
+ case 40:
+ goto tr122
+ case 59:
+ goto st67
+ case 95:
+ goto st93
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st93
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st93
+ }
+ default:
+ goto st93
+ }
+ goto st0
+tr176:
+// line 109 "parseqt.rl"
+
+ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4}
+ goto st133
+ st133:
+ if p++; p == pe {
+ goto _test_eof133
+ }
+ st_case_133:
+// line 4161 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st133
+ case 32:
+ goto st133
+ case 40:
+ goto tr124
+ case 59:
+ goto st67
+ case 123:
+ goto st73
+ }
+ goto st0
+ st134:
+ if p++; p == pe {
+ goto _test_eof134
+ }
+ st_case_134:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 111:
+ goto st135
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st135:
+ if p++; p == pe {
+ goto _test_eof135
+ }
+ st_case_135:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 110:
+ goto st136
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st136:
+ if p++; p == pe {
+ goto _test_eof136
+ }
+ st_case_136:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 115:
+ goto st137
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st137:
+ if p++; p == pe {
+ goto _test_eof137
+ }
+ st_case_137:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 116:
+ goto st138
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st138:
+ if p++; p == pe {
+ goto _test_eof138
+ }
+ st_case_138:
+ switch data[p] {
+ case 9:
+ goto st139
+ case 32:
+ goto st139
+ case 40:
+ goto st75
+ case 42:
+ goto tr87
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 103:
+ goto tr183
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+tr339:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st139
+ st139:
+ if p++; p == pe {
+ goto _test_eof139
+ }
+ st_case_139:
+// line 4357 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st139
+ case 32:
+ goto st139
+ case 42:
+ goto tr87
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 99:
+ goto st134
+ case 103:
+ goto tr90
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+tr183:
+// line 109 "parseqt.rl"
+
+ m2 = p
+ goto st140
+ st140:
+ if p++; p == pe {
+ goto _test_eof140
+ }
+ st_case_140:
+// line 4399 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 108:
+ goto st141
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st141:
+ if p++; p == pe {
+ goto _test_eof141
+ }
+ st_case_141:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st142
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st142
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st142
+ }
+ default:
+ goto st142
+ }
+ goto st0
+ st142:
+ if p++; p == pe {
+ goto _test_eof142
+ }
+ st_case_142:
+ switch data[p] {
+ case 9:
+ goto tr186
+ case 32:
+ goto tr186
+ case 40:
+ goto tr187
+ case 59:
+ goto st67
+ case 95:
+ goto st142
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st142
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st142
+ }
+ default:
+ goto st142
+ }
+ goto st0
+tr186:
+// line 109 "parseqt.rl"
+
+ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4}
+ goto st143
+ st143:
+ if p++; p == pe {
+ goto _test_eof143
+ }
+ st_case_143:
+// line 4503 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st143
+ case 32:
+ goto st143
+ case 40:
+ goto tr124
+ case 59:
+ goto st67
+ case 99:
+ goto st68
+ case 123:
+ goto st73
+ }
+ goto st0
+tr187:
+// line 109 "parseqt.rl"
+
+ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4}
+// line 109 "parseqt.rl"
+
+ m6 = 0
+ goto st144
+ st144:
+ if p++; p == pe {
+ goto _test_eof144
+ }
+ st_case_144:
+// line 4532 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st144
+ case 10:
+ goto st0
+ case 32:
+ goto st144
+ case 41:
+ goto st145
+ case 95:
+ goto tr191
+ case 99:
+ goto tr192
+ case 118:
+ goto tr193
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr191
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr191
+ }
+ default:
+ goto tr191
+ }
+ goto st75
+ st145:
+ if p++; p == pe {
+ goto _test_eof145
+ }
+ st_case_145:
+ switch data[p] {
+ case 9:
+ goto st145
+ case 10:
+ goto st0
+ case 32:
+ goto st145
+ case 41:
+ goto st76
+ case 59:
+ goto tr194
+ case 99:
+ goto st78
+ case 123:
+ goto st83
+ }
+ goto st75
+tr194:
+// line 1 "NONE"
+
+te = p+1
+
+// line 114 "parseqt.rl"
+
+act = 10;
+ goto st451
+ st451:
+ if p++; p == pe {
+ goto _test_eof451
+ }
+ st_case_451:
+// line 4598 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st77
+ case 10:
+ goto tr96
+ case 32:
+ goto st77
+ case 41:
+ goto st76
+ }
+ goto st75
+tr191:
+// line 111 "parseqt.rl"
+
+ m0 = p
+ goto st146
+ st146:
+ if p++; p == pe {
+ goto _test_eof146
+ }
+ st_case_146:
+// line 4620 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+tr195:
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st147
+ st147:
+ if p++; p == pe {
+ goto _test_eof147
+ }
+ st_case_147:
+// line 4658 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st147
+ case 10:
+ goto st0
+ case 32:
+ goto st147
+ case 41:
+ goto st76
+ case 42:
+ goto tr199
+ case 95:
+ goto tr200
+ case 99:
+ goto tr201
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr200
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr200
+ }
+ default:
+ goto tr200
+ }
+ goto st75
+tr196:
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+// line 111 "parseqt.rl"
+
+ m4++
+ goto st148
+tr199:
+// line 111 "parseqt.rl"
+
+ m4++
+ goto st148
+ st148:
+ if p++; p == pe {
+ goto _test_eof148
+ }
+ st_case_148:
+// line 4706 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st147
+ case 10:
+ goto st0
+ case 32:
+ goto st147
+ case 41:
+ goto st76
+ case 42:
+ goto tr199
+ case 95:
+ goto tr200
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr200
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr200
+ }
+ default:
+ goto tr200
+ }
+ goto st75
+tr200:
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st149
+ st149:
+ if p++; p == pe {
+ goto _test_eof149
+ }
+ st_case_149:
+// line 4744 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr202
+ case 10:
+ goto st0
+ case 32:
+ goto tr202
+ case 41:
+ goto tr203
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st149
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st149
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st149
+ }
+ default:
+ goto st149
+ }
+ goto st75
+tr202:
+// line 111 "parseqt.rl"
+
+ m3 = p
+ goto st150
+ st150:
+ if p++; p == pe {
+ goto _test_eof150
+ }
+ st_case_150:
+// line 4784 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st150
+ case 10:
+ goto st0
+ case 32:
+ goto st150
+ case 41:
+ goto tr208
+ case 44:
+ goto tr209
+ }
+ goto st75
+tr203:
+// line 111 "parseqt.rl"
+
+ m3 = p
+// line 112 "parseqt.rl"
+
+ f.Param = append(f.Param, Param{Name: data[m2:m3], Type: data[m0:m1], Addr: m4, Array: m5, Const: m6 > 0}); m6 = 0
+ goto st151
+tr208:
+// line 112 "parseqt.rl"
+
+ f.Param = append(f.Param, Param{Name: data[m2:m3], Type: data[m0:m1], Addr: m4, Array: m5, Const: m6 > 0}); m6 = 0
+ goto st151
+ st151:
+ if p++; p == pe {
+ goto _test_eof151
+ }
+ st_case_151:
+// line 4816 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st151
+ case 10:
+ goto st0
+ case 32:
+ goto st151
+ case 41:
+ goto st76
+ case 59:
+ goto tr194
+ case 95:
+ goto tr191
+ case 99:
+ goto tr211
+ case 123:
+ goto st83
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr191
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr191
+ }
+ default:
+ goto tr191
+ }
+ goto st75
+tr211:
+// line 111 "parseqt.rl"
+
+ m0 = p
+ goto st152
+ st152:
+ if p++; p == pe {
+ goto _test_eof152
+ }
+ st_case_152:
+// line 4858 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 111:
+ goto st153
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st153:
+ if p++; p == pe {
+ goto _test_eof153
+ }
+ st_case_153:
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 110:
+ goto st154
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st154:
+ if p++; p == pe {
+ goto _test_eof154
+ }
+ st_case_154:
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 115:
+ goto st155
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st155:
+ if p++; p == pe {
+ goto _test_eof155
+ }
+ st_case_155:
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 116:
+ goto st156
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st156:
+ if p++; p == pe {
+ goto _test_eof156
+ }
+ st_case_156:
+ switch data[p] {
+ case 9:
+ goto tr216
+ case 10:
+ goto st0
+ case 32:
+ goto tr216
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 59:
+ goto st77
+ case 95:
+ goto st146
+ case 123:
+ goto st83
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+tr216:
+// line 111 "parseqt.rl"
+
+ m6 = 1
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st157
+ st157:
+ if p++; p == pe {
+ goto _test_eof157
+ }
+ st_case_157:
+// line 5039 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st157
+ case 10:
+ goto st0
+ case 32:
+ goto st157
+ case 41:
+ goto st76
+ case 42:
+ goto tr199
+ case 59:
+ goto st77
+ case 95:
+ goto tr218
+ case 99:
+ goto tr219
+ case 123:
+ goto st83
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr218
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr218
+ }
+ default:
+ goto tr218
+ }
+ goto st75
+tr236:
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st158
+tr218:
+// line 111 "parseqt.rl"
+
+ m0 = p
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st158
+ st158:
+ if p++; p == pe {
+ goto _test_eof158
+ }
+ st_case_158:
+// line 5091 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr220
+ case 10:
+ goto st0
+ case 32:
+ goto tr220
+ case 41:
+ goto tr203
+ case 42:
+ goto tr196
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st158
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st158
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st158
+ }
+ default:
+ goto st158
+ }
+ goto st75
+tr241:
+// line 111 "parseqt.rl"
+
+ m3 = p
+ goto st159
+tr220:
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+// line 111 "parseqt.rl"
+
+ m3 = p
+ goto st159
+ st159:
+ if p++; p == pe {
+ goto _test_eof159
+ }
+ st_case_159:
+// line 5141 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st159
+ case 10:
+ goto st0
+ case 32:
+ goto st159
+ case 41:
+ goto tr208
+ case 42:
+ goto tr199
+ case 44:
+ goto tr209
+ case 95:
+ goto tr200
+ case 99:
+ goto tr201
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr200
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr200
+ }
+ default:
+ goto tr200
+ }
+ goto st75
+tr204:
+// line 111 "parseqt.rl"
+
+ m3 = p
+// line 112 "parseqt.rl"
+
+ f.Param = append(f.Param, Param{Name: data[m2:m3], Type: data[m0:m1], Addr: m4, Array: m5, Const: m6 > 0}); m6 = 0
+ goto st160
+tr209:
+// line 112 "parseqt.rl"
+
+ f.Param = append(f.Param, Param{Name: data[m2:m3], Type: data[m0:m1], Addr: m4, Array: m5, Const: m6 > 0}); m6 = 0
+ goto st160
+ st160:
+ if p++; p == pe {
+ goto _test_eof160
+ }
+ st_case_160:
+// line 5191 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st160
+ case 10:
+ goto st0
+ case 32:
+ goto st160
+ case 41:
+ goto st76
+ case 59:
+ goto tr224
+ case 95:
+ goto tr191
+ case 99:
+ goto tr192
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr191
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr191
+ }
+ default:
+ goto tr191
+ }
+ goto st75
+tr224:
+// line 1 "NONE"
+
+te = p+1
+
+// line 114 "parseqt.rl"
+
+act = 10;
+ goto st452
+ st452:
+ if p++; p == pe {
+ goto _test_eof452
+ }
+ st_case_452:
+// line 5235 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto tr533
+ case 41:
+ goto st76
+ }
+ goto st75
+tr192:
+// line 111 "parseqt.rl"
+
+ m0 = p
+ goto st161
+ st161:
+ if p++; p == pe {
+ goto _test_eof161
+ }
+ st_case_161:
+// line 5253 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 111:
+ goto st162
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st162:
+ if p++; p == pe {
+ goto _test_eof162
+ }
+ st_case_162:
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 110:
+ goto st163
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st163:
+ if p++; p == pe {
+ goto _test_eof163
+ }
+ st_case_163:
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 115:
+ goto st164
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st164:
+ if p++; p == pe {
+ goto _test_eof164
+ }
+ st_case_164:
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 116:
+ goto st165
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st165:
+ if p++; p == pe {
+ goto _test_eof165
+ }
+ st_case_165:
+ switch data[p] {
+ case 9:
+ goto tr229
+ case 10:
+ goto st0
+ case 32:
+ goto tr229
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+tr229:
+// line 111 "parseqt.rl"
+
+ m6 = 1
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st166
+ st166:
+ if p++; p == pe {
+ goto _test_eof166
+ }
+ st_case_166:
+// line 5430 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st166
+ case 10:
+ goto st0
+ case 32:
+ goto st166
+ case 41:
+ goto st76
+ case 42:
+ goto tr199
+ case 95:
+ goto tr218
+ case 99:
+ goto tr219
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr218
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr218
+ }
+ default:
+ goto tr218
+ }
+ goto st75
+tr219:
+// line 111 "parseqt.rl"
+
+ m0 = p
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st167
+ st167:
+ if p++; p == pe {
+ goto _test_eof167
+ }
+ st_case_167:
+// line 5473 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr220
+ case 10:
+ goto st0
+ case 32:
+ goto tr220
+ case 41:
+ goto tr203
+ case 42:
+ goto tr196
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st158
+ case 111:
+ goto st170
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st158
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st158
+ }
+ default:
+ goto st158
+ }
+ goto st75
+tr206:
+// line 111 "parseqt.rl"
+
+ m3 = p
+ goto st168
+ st168:
+ if p++; p == pe {
+ goto _test_eof168
+ }
+ st_case_168:
+// line 5517 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto st0
+ case 41:
+ goto st76
+ }
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr232
+ }
+ goto st75
+tr232:
+// line 111 "parseqt.rl"
+
+ m5 = m5*10 + (int(data[p]) - '0')
+ goto st169
+ st169:
+ if p++; p == pe {
+ goto _test_eof169
+ }
+ st_case_169:
+// line 5538 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto st0
+ case 41:
+ goto st76
+ case 93:
+ goto st150
+ }
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr232
+ }
+ goto st75
+ st170:
+ if p++; p == pe {
+ goto _test_eof170
+ }
+ st_case_170:
+ switch data[p] {
+ case 9:
+ goto tr220
+ case 10:
+ goto st0
+ case 32:
+ goto tr220
+ case 41:
+ goto tr203
+ case 42:
+ goto tr196
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st158
+ case 110:
+ goto st171
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st158
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st158
+ }
+ default:
+ goto st158
+ }
+ goto st75
+ st171:
+ if p++; p == pe {
+ goto _test_eof171
+ }
+ st_case_171:
+ switch data[p] {
+ case 9:
+ goto tr220
+ case 10:
+ goto st0
+ case 32:
+ goto tr220
+ case 41:
+ goto tr203
+ case 42:
+ goto tr196
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st158
+ case 115:
+ goto st172
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st158
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st158
+ }
+ default:
+ goto st158
+ }
+ goto st75
+ st172:
+ if p++; p == pe {
+ goto _test_eof172
+ }
+ st_case_172:
+ switch data[p] {
+ case 9:
+ goto tr220
+ case 10:
+ goto st0
+ case 32:
+ goto tr220
+ case 41:
+ goto tr203
+ case 42:
+ goto tr196
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st158
+ case 116:
+ goto st173
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st158
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st158
+ }
+ default:
+ goto st158
+ }
+ goto st75
+ st173:
+ if p++; p == pe {
+ goto _test_eof173
+ }
+ st_case_173:
+ switch data[p] {
+ case 9:
+ goto tr220
+ case 10:
+ goto st0
+ case 32:
+ goto tr220
+ case 41:
+ goto tr203
+ case 42:
+ goto tr196
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto tr236
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr236
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr236
+ }
+ default:
+ goto tr236
+ }
+ goto st75
+tr201:
+// line 111 "parseqt.rl"
+
+ m2 = p; m5 = 0
+ goto st174
+ st174:
+ if p++; p == pe {
+ goto _test_eof174
+ }
+ st_case_174:
+// line 5711 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr202
+ case 10:
+ goto st0
+ case 32:
+ goto tr202
+ case 41:
+ goto tr203
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st149
+ case 111:
+ goto st175
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st149
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st149
+ }
+ default:
+ goto st149
+ }
+ goto st75
+ st175:
+ if p++; p == pe {
+ goto _test_eof175
+ }
+ st_case_175:
+ switch data[p] {
+ case 9:
+ goto tr202
+ case 10:
+ goto st0
+ case 32:
+ goto tr202
+ case 41:
+ goto tr203
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st149
+ case 110:
+ goto st176
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st149
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st149
+ }
+ default:
+ goto st149
+ }
+ goto st75
+ st176:
+ if p++; p == pe {
+ goto _test_eof176
+ }
+ st_case_176:
+ switch data[p] {
+ case 9:
+ goto tr202
+ case 10:
+ goto st0
+ case 32:
+ goto tr202
+ case 41:
+ goto tr203
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st149
+ case 115:
+ goto st177
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st149
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st149
+ }
+ default:
+ goto st149
+ }
+ goto st75
+ st177:
+ if p++; p == pe {
+ goto _test_eof177
+ }
+ st_case_177:
+ switch data[p] {
+ case 9:
+ goto tr202
+ case 10:
+ goto st0
+ case 32:
+ goto tr202
+ case 41:
+ goto tr203
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto st149
+ case 116:
+ goto st178
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st149
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st149
+ }
+ default:
+ goto st149
+ }
+ goto st75
+ st178:
+ if p++; p == pe {
+ goto _test_eof178
+ }
+ st_case_178:
+ switch data[p] {
+ case 9:
+ goto tr241
+ case 10:
+ goto st0
+ case 32:
+ goto tr241
+ case 41:
+ goto tr203
+ case 42:
+ goto tr199
+ case 44:
+ goto tr204
+ case 91:
+ goto tr206
+ case 95:
+ goto tr200
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr200
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr200
+ }
+ default:
+ goto tr200
+ }
+ goto st75
+tr193:
+// line 111 "parseqt.rl"
+
+ m0 = p
+ goto st179
+ st179:
+ if p++; p == pe {
+ goto _test_eof179
+ }
+ st_case_179:
+// line 5897 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 111:
+ goto st180
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st180:
+ if p++; p == pe {
+ goto _test_eof180
+ }
+ st_case_180:
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 105:
+ goto st181
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st181:
+ if p++; p == pe {
+ goto _test_eof181
+ }
+ st_case_181:
+ switch data[p] {
+ case 9:
+ goto tr195
+ case 10:
+ goto st0
+ case 32:
+ goto tr195
+ case 41:
+ goto st76
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ case 100:
+ goto st182
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+ st182:
+ if p++; p == pe {
+ goto _test_eof182
+ }
+ st_case_182:
+ switch data[p] {
+ case 9:
+ goto tr245
+ case 10:
+ goto st0
+ case 32:
+ goto tr245
+ case 41:
+ goto st145
+ case 42:
+ goto tr196
+ case 95:
+ goto st146
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st146
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st146
+ }
+ default:
+ goto st146
+ }
+ goto st75
+tr245:
+// line 111 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st183
+ st183:
+ if p++; p == pe {
+ goto _test_eof183
+ }
+ st_case_183:
+// line 6037 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st183
+ case 10:
+ goto st0
+ case 32:
+ goto st183
+ case 41:
+ goto st145
+ case 42:
+ goto tr199
+ case 95:
+ goto tr200
+ case 99:
+ goto tr201
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr200
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr200
+ }
+ default:
+ goto tr200
+ }
+ goto st75
+tr83:
+// line 84 "parseqt.rl"
+
+ m1 = p
+ goto st184
+ st184:
+ if p++; p == pe {
+ goto _test_eof184
+ }
+ st_case_184:
+// line 6077 "parseqt.go"
+ if data[p] == 41 {
+ goto st185
+ }
+ goto st0
+ st185:
+ if p++; p == pe {
+ goto _test_eof185
+ }
+ st_case_185:
+ switch data[p] {
+ case 9:
+ goto st185
+ case 32:
+ goto st185
+ case 59:
+ goto st186
+ case 123:
+ goto st187
+ }
+ goto st0
+ st186:
+ if p++; p == pe {
+ goto _test_eof186
+ }
+ st_case_186:
+ switch data[p] {
+ case 9:
+ goto st186
+ case 10:
+ goto tr250
+ case 32:
+ goto st186
+ }
+ goto st0
+ st187:
+ if p++; p == pe {
+ goto _test_eof187
+ }
+ st_case_187:
+ if data[p] == 125 {
+ goto st186
+ }
+ goto st0
+ st188:
+ if p++; p == pe {
+ goto _test_eof188
+ }
+ st_case_188:
+ switch data[p] {
+ case 9:
+ goto st189
+ case 32:
+ goto st189
+ case 42:
+ goto tr252
+ case 95:
+ goto st188
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 58 {
+ goto st188
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st188
+ }
+ default:
+ goto st188
+ }
+ goto st0
+ st189:
+ if p++; p == pe {
+ goto _test_eof189
+ }
+ st_case_189:
+ switch data[p] {
+ case 9:
+ goto st189
+ case 32:
+ goto st189
+ case 42:
+ goto tr252
+ case 95:
+ goto st65
+ case 99:
+ goto st193
+ case 103:
+ goto st191
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+tr252:
+// line 127 "parseqt.rl"
+
+ m4++
+ goto st190
+ st190:
+ if p++; p == pe {
+ goto _test_eof190
+ }
+ st_case_190:
+// line 6191 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st189
+ case 32:
+ goto st189
+ case 42:
+ goto tr252
+ case 95:
+ goto st65
+ case 103:
+ goto st191
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st191:
+ if p++; p == pe {
+ goto _test_eof191
+ }
+ st_case_191:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 108:
+ goto st192
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st192:
+ if p++; p == pe {
+ goto _test_eof192
+ }
+ st_case_192:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 99:
+ goto st68
+ case 123:
+ goto st73
+ }
+ goto st0
+ st193:
+ if p++; p == pe {
+ goto _test_eof193
+ }
+ st_case_193:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 111:
+ goto st194
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st194:
+ if p++; p == pe {
+ goto _test_eof194
+ }
+ st_case_194:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 110:
+ goto st195
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st195:
+ if p++; p == pe {
+ goto _test_eof195
+ }
+ st_case_195:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 115:
+ goto st196
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st196:
+ if p++; p == pe {
+ goto _test_eof196
+ }
+ st_case_196:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 116:
+ goto st197
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st197:
+ if p++; p == pe {
+ goto _test_eof197
+ }
+ st_case_197:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st198:
+ if p++; p == pe {
+ goto _test_eof198
+ }
+ st_case_198:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 42:
+ goto tr252
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 99:
+ goto st193
+ case 103:
+ goto st191
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+tr67:
+// line 84 "parseqt.rl"
+
+ m0 = p
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st199
+ st199:
+ if p++; p == pe {
+ goto _test_eof199
+ }
+ st_case_199:
+// line 6490 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st200
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st200:
+ if p++; p == pe {
+ goto _test_eof200
+ }
+ st_case_200:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 68:
+ goto st201
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st201:
+ if p++; p == pe {
+ goto _test_eof201
+ }
+ st_case_201:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 69:
+ goto st202
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st202:
+ if p++; p == pe {
+ goto _test_eof202
+ }
+ st_case_202:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 67:
+ goto st203
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st203:
+ if p++; p == pe {
+ goto _test_eof203
+ }
+ st_case_203:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 76:
+ goto st204
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st204:
+ if p++; p == pe {
+ goto _test_eof204
+ }
+ st_case_204:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 65:
+ goto st205
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 66:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st205:
+ if p++; p == pe {
+ goto _test_eof205
+ }
+ st_case_205:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 82:
+ goto st206
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st206:
+ if p++; p == pe {
+ goto _test_eof206
+ }
+ st_case_206:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 69:
+ goto st207
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st207:
+ if p++; p == pe {
+ goto _test_eof207
+ }
+ st_case_207:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st208
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st208:
+ if p++; p == pe {
+ goto _test_eof208
+ }
+ st_case_208:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 70:
+ goto st209
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st209:
+ if p++; p == pe {
+ goto _test_eof209
+ }
+ st_case_209:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 76:
+ goto st210
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st210:
+ if p++; p == pe {
+ goto _test_eof210
+ }
+ st_case_210:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 65:
+ goto st211
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 66:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st211:
+ if p++; p == pe {
+ goto _test_eof211
+ }
+ st_case_211:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 71:
+ goto st212
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st212:
+ if p++; p == pe {
+ goto _test_eof212
+ }
+ st_case_212:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 83:
+ goto st213
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st213:
+ if p++; p == pe {
+ goto _test_eof213
+ }
+ st_case_213:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr275
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+tr275:
+// line 84 "parseqt.rl"
+
+ m1 = p
+ goto st214
+ st214:
+ if p++; p == pe {
+ goto _test_eof214
+ }
+ st_case_214:
+// line 7000 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto st0
+ case 41:
+ goto st217
+ }
+ goto st215
+ st215:
+ if p++; p == pe {
+ goto _test_eof215
+ }
+ st_case_215:
+ switch data[p] {
+ case 10:
+ goto st0
+ case 41:
+ goto st216
+ }
+ goto st215
+ st216:
+ if p++; p == pe {
+ goto _test_eof216
+ }
+ st_case_216:
+ switch data[p] {
+ case 9:
+ goto st216
+ case 10:
+ goto tr279
+ case 32:
+ goto st216
+ case 41:
+ goto st216
+ }
+ goto st215
+ st217:
+ if p++; p == pe {
+ goto _test_eof217
+ }
+ st_case_217:
+ switch data[p] {
+ case 9:
+ goto st217
+ case 10:
+ goto st0
+ case 32:
+ goto st217
+ case 41:
+ goto st216
+ case 59:
+ goto st218
+ case 123:
+ goto st219
+ }
+ goto st215
+ st218:
+ if p++; p == pe {
+ goto _test_eof218
+ }
+ st_case_218:
+ switch data[p] {
+ case 9:
+ goto st218
+ case 10:
+ goto tr250
+ case 32:
+ goto st218
+ case 41:
+ goto st216
+ }
+ goto st215
+ st219:
+ if p++; p == pe {
+ goto _test_eof219
+ }
+ st_case_219:
+ switch data[p] {
+ case 10:
+ goto st0
+ case 41:
+ goto st216
+ case 125:
+ goto st218
+ }
+ goto st215
+tr68:
+// line 84 "parseqt.rl"
+
+ m0 = p
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st220
+ st220:
+ if p++; p == pe {
+ goto _test_eof220
+ }
+ st_case_220:
+// line 7099 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 111:
+ goto st221
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st221:
+ if p++; p == pe {
+ goto _test_eof221
+ }
+ st_case_221:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 111:
+ goto st222
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st222:
+ if p++; p == pe {
+ goto _test_eof222
+ }
+ st_case_222:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 108:
+ goto st223
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st223:
+ if p++; p == pe {
+ goto _test_eof223
+ }
+ st_case_223:
+ switch data[p] {
+ case 9:
+ goto tr285
+ case 32:
+ goto tr285
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+tr285:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st224
+ st224:
+ if p++; p == pe {
+ goto _test_eof224
+ }
+ st_case_224:
+// line 7239 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st224
+ case 32:
+ goto st224
+ case 42:
+ goto tr87
+ case 95:
+ goto st65
+ case 99:
+ goto st134
+ case 103:
+ goto tr90
+ case 105:
+ goto st225
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st225:
+ if p++; p == pe {
+ goto _test_eof225
+ }
+ st_case_225:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 110:
+ goto st226
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st226:
+ if p++; p == pe {
+ goto _test_eof226
+ }
+ st_case_226:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 105:
+ goto st227
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st227:
+ if p++; p == pe {
+ goto _test_eof227
+ }
+ st_case_227:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 116:
+ goto st228
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st228:
+ if p++; p == pe {
+ goto _test_eof228
+ }
+ st_case_228:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 105:
+ goto st229
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st229:
+ if p++; p == pe {
+ goto _test_eof229
+ }
+ st_case_229:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 97:
+ goto st230
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 98 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st230:
+ if p++; p == pe {
+ goto _test_eof230
+ }
+ st_case_230:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 108:
+ goto st231
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st231:
+ if p++; p == pe {
+ goto _test_eof231
+ }
+ st_case_231:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 105:
+ goto st232
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st232:
+ if p++; p == pe {
+ goto _test_eof232
+ }
+ st_case_232:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 122:
+ goto st233
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 121 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st233:
+ if p++; p == pe {
+ goto _test_eof233
+ }
+ st_case_233:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 101:
+ goto st234
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st234:
+ if p++; p == pe {
+ goto _test_eof234
+ }
+ st_case_234:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 79:
+ goto st235
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st235:
+ if p++; p == pe {
+ goto _test_eof235
+ }
+ st_case_235:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 112:
+ goto st236
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st236:
+ if p++; p == pe {
+ goto _test_eof236
+ }
+ st_case_236:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 101:
+ goto st237
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st237:
+ if p++; p == pe {
+ goto _test_eof237
+ }
+ st_case_237:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 110:
+ goto st238
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st238:
+ if p++; p == pe {
+ goto _test_eof238
+ }
+ st_case_238:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 71:
+ goto st239
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st239:
+ if p++; p == pe {
+ goto _test_eof239
+ }
+ st_case_239:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 76:
+ goto st240
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st240:
+ if p++; p == pe {
+ goto _test_eof240
+ }
+ st_case_240:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 70:
+ goto st241
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st241:
+ if p++; p == pe {
+ goto _test_eof241
+ }
+ st_case_241:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 117:
+ goto st242
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st242:
+ if p++; p == pe {
+ goto _test_eof242
+ }
+ st_case_242:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 110:
+ goto st243
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st243:
+ if p++; p == pe {
+ goto _test_eof243
+ }
+ st_case_243:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 99:
+ goto st244
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st244:
+ if p++; p == pe {
+ goto _test_eof244
+ }
+ st_case_244:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 116:
+ goto st245
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st245:
+ if p++; p == pe {
+ goto _test_eof245
+ }
+ st_case_245:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 105:
+ goto st246
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st246:
+ if p++; p == pe {
+ goto _test_eof246
+ }
+ st_case_246:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 111:
+ goto st247
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st247:
+ if p++; p == pe {
+ goto _test_eof247
+ }
+ st_case_247:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 110:
+ goto st248
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st248:
+ if p++; p == pe {
+ goto _test_eof248
+ }
+ st_case_248:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 115:
+ goto st249
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st249:
+ if p++; p == pe {
+ goto _test_eof249
+ }
+ st_case_249:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st250
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st250:
+ if p++; p == pe {
+ goto _test_eof250
+ }
+ st_case_250:
+ switch data[p] {
+ case 10:
+ goto st0
+ case 41:
+ goto st251
+ }
+ goto st75
+ st251:
+ if p++; p == pe {
+ goto _test_eof251
+ }
+ st_case_251:
+ switch data[p] {
+ case 9:
+ goto st251
+ case 10:
+ goto tr315
+ case 32:
+ goto st251
+ case 41:
+ goto st251
+ case 59:
+ goto st253
+ case 99:
+ goto st254
+ case 123:
+ goto st259
+ }
+ goto st252
+ st252:
+ if p++; p == pe {
+ goto _test_eof252
+ }
+ st_case_252:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st251
+ }
+ goto st252
+ st253:
+ if p++; p == pe {
+ goto _test_eof253
+ }
+ st_case_253:
+ switch data[p] {
+ case 9:
+ goto st253
+ case 10:
+ goto tr315
+ case 32:
+ goto st253
+ case 41:
+ goto st251
+ }
+ goto st252
+ st254:
+ if p++; p == pe {
+ goto _test_eof254
+ }
+ st_case_254:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st251
+ case 111:
+ goto st255
+ }
+ goto st252
+ st255:
+ if p++; p == pe {
+ goto _test_eof255
+ }
+ st_case_255:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st251
+ case 110:
+ goto st256
+ }
+ goto st252
+ st256:
+ if p++; p == pe {
+ goto _test_eof256
+ }
+ st_case_256:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st251
+ case 115:
+ goto st257
+ }
+ goto st252
+ st257:
+ if p++; p == pe {
+ goto _test_eof257
+ }
+ st_case_257:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st251
+ case 116:
+ goto st258
+ }
+ goto st252
+ st258:
+ if p++; p == pe {
+ goto _test_eof258
+ }
+ st_case_258:
+ switch data[p] {
+ case 9:
+ goto st258
+ case 10:
+ goto tr315
+ case 32:
+ goto st258
+ case 41:
+ goto st251
+ case 59:
+ goto st253
+ case 123:
+ goto st259
+ }
+ goto st252
+ st259:
+ if p++; p == pe {
+ goto _test_eof259
+ }
+ st_case_259:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st260
+ case 125:
+ goto st261
+ }
+ goto st259
+ st260:
+ if p++; p == pe {
+ goto _test_eof260
+ }
+ st_case_260:
+ switch data[p] {
+ case 9:
+ goto st260
+ case 10:
+ goto tr315
+ case 32:
+ goto st260
+ case 41:
+ goto st260
+ case 59:
+ goto st261
+ case 99:
+ goto st262
+ case 125:
+ goto st261
+ }
+ goto st259
+ st261:
+ if p++; p == pe {
+ goto _test_eof261
+ }
+ st_case_261:
+ switch data[p] {
+ case 9:
+ goto st261
+ case 10:
+ goto tr315
+ case 32:
+ goto st261
+ case 41:
+ goto st260
+ case 125:
+ goto st261
+ }
+ goto st259
+ st262:
+ if p++; p == pe {
+ goto _test_eof262
+ }
+ st_case_262:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st260
+ case 111:
+ goto st263
+ case 125:
+ goto st261
+ }
+ goto st259
+ st263:
+ if p++; p == pe {
+ goto _test_eof263
+ }
+ st_case_263:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st260
+ case 110:
+ goto st264
+ case 125:
+ goto st261
+ }
+ goto st259
+ st264:
+ if p++; p == pe {
+ goto _test_eof264
+ }
+ st_case_264:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st260
+ case 115:
+ goto st265
+ case 125:
+ goto st261
+ }
+ goto st259
+ st265:
+ if p++; p == pe {
+ goto _test_eof265
+ }
+ st_case_265:
+ switch data[p] {
+ case 10:
+ goto tr315
+ case 41:
+ goto st260
+ case 116:
+ goto st266
+ case 125:
+ goto st261
+ }
+ goto st259
+ st266:
+ if p++; p == pe {
+ goto _test_eof266
+ }
+ st_case_266:
+ switch data[p] {
+ case 9:
+ goto st266
+ case 10:
+ goto tr315
+ case 32:
+ goto st266
+ case 41:
+ goto st260
+ case 59:
+ goto st261
+ case 125:
+ goto st261
+ }
+ goto st259
+tr69:
+// line 84 "parseqt.rl"
+
+ m0 = p
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st267
+ st267:
+ if p++; p == pe {
+ goto _test_eof267
+ }
+ st_case_267:
+// line 8406 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 111:
+ goto st268
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st268:
+ if p++; p == pe {
+ goto _test_eof268
+ }
+ st_case_268:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 110:
+ goto st269
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st269:
+ if p++; p == pe {
+ goto _test_eof269
+ }
+ st_case_269:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 115:
+ goto st270
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st270:
+ if p++; p == pe {
+ goto _test_eof270
+ }
+ st_case_270:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 116:
+ goto st271
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st271:
+ if p++; p == pe {
+ goto _test_eof271
+ }
+ st_case_271:
+ switch data[p] {
+ case 9:
+ goto tr334
+ case 32:
+ goto tr334
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+tr334:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st272
+ st272:
+ if p++; p == pe {
+ goto _test_eof272
+ }
+ st_case_272:
+// line 8580 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st272
+ case 32:
+ goto st272
+ case 42:
+ goto tr87
+ case 58:
+ goto st188
+ case 95:
+ goto tr336
+ case 99:
+ goto tr337
+ case 103:
+ goto tr338
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr336
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr336
+ }
+ default:
+ goto tr336
+ }
+ goto st0
+tr336:
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st273
+ st273:
+ if p++; p == pe {
+ goto _test_eof273
+ }
+ st_case_273:
+// line 8620 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st273
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st273
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st273
+ }
+ default:
+ goto st273
+ }
+ goto st0
+tr337:
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st274
+ st274:
+ if p++; p == pe {
+ goto _test_eof274
+ }
+ st_case_274:
+// line 8662 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st273
+ case 111:
+ goto st275
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st273
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st273
+ }
+ default:
+ goto st273
+ }
+ goto st0
+ st275:
+ if p++; p == pe {
+ goto _test_eof275
+ }
+ st_case_275:
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st273
+ case 110:
+ goto st276
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st273
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st273
+ }
+ default:
+ goto st273
+ }
+ goto st0
+ st276:
+ if p++; p == pe {
+ goto _test_eof276
+ }
+ st_case_276:
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st273
+ case 115:
+ goto st277
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st273
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st273
+ }
+ default:
+ goto st273
+ }
+ goto st0
+ st277:
+ if p++; p == pe {
+ goto _test_eof277
+ }
+ st_case_277:
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st273
+ case 116:
+ goto st278
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st273
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st273
+ }
+ default:
+ goto st273
+ }
+ goto st0
+ st278:
+ if p++; p == pe {
+ goto _test_eof278
+ }
+ st_case_278:
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st273
+ case 103:
+ goto tr345
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st273
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st273
+ }
+ default:
+ goto st273
+ }
+ goto st0
+tr345:
+// line 109 "parseqt.rl"
+
+ m2 = p
+ goto st279
+ st279:
+ if p++; p == pe {
+ goto _test_eof279
+ }
+ st_case_279:
+// line 8858 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st273
+ case 108:
+ goto st280
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st273
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st273
+ }
+ default:
+ goto st273
+ }
+ goto st0
+ st280:
+ if p++; p == pe {
+ goto _test_eof280
+ }
+ st_case_280:
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st281
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st281
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st281
+ }
+ default:
+ goto st281
+ }
+ goto st0
+ st281:
+ if p++; p == pe {
+ goto _test_eof281
+ }
+ st_case_281:
+ switch data[p] {
+ case 9:
+ goto tr348
+ case 32:
+ goto tr348
+ case 40:
+ goto tr187
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st281
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st281
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st281
+ }
+ default:
+ goto st281
+ }
+ goto st0
+tr348:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+// line 109 "parseqt.rl"
+
+ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4}
+ goto st282
+ st282:
+ if p++; p == pe {
+ goto _test_eof282
+ }
+ st_case_282:
+// line 8977 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st282
+ case 32:
+ goto st282
+ case 40:
+ goto tr124
+ case 42:
+ goto tr87
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 99:
+ goto st134
+ case 103:
+ goto tr90
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+tr338:
+// line 107 "parseqt.rl"
+
+ m0 = p
+// line 109 "parseqt.rl"
+
+ m2 = p
+ goto st283
+ st283:
+ if p++; p == pe {
+ goto _test_eof283
+ }
+ st_case_283:
+// line 9024 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st273
+ case 108:
+ goto st284
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st273
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st273
+ }
+ default:
+ goto st273
+ }
+ goto st0
+ st284:
+ if p++; p == pe {
+ goto _test_eof284
+ }
+ st_case_284:
+ switch data[p] {
+ case 9:
+ goto tr339
+ case 32:
+ goto tr339
+ case 40:
+ goto st75
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st285
+ case 99:
+ goto st287
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st285
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st285
+ }
+ default:
+ goto st285
+ }
+ goto st0
+ st285:
+ if p++; p == pe {
+ goto _test_eof285
+ }
+ st_case_285:
+ switch data[p] {
+ case 9:
+ goto tr353
+ case 32:
+ goto tr353
+ case 40:
+ goto tr122
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st285
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st285
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st285
+ }
+ default:
+ goto st285
+ }
+ goto st0
+tr353:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+// line 109 "parseqt.rl"
+
+ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4}
+ goto st286
+ st286:
+ if p++; p == pe {
+ goto _test_eof286
+ }
+ st_case_286:
+// line 9141 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st286
+ case 32:
+ goto st286
+ case 40:
+ goto tr124
+ case 42:
+ goto tr87
+ case 95:
+ goto st65
+ case 99:
+ goto st134
+ case 103:
+ goto tr90
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st287:
+ if p++; p == pe {
+ goto _test_eof287
+ }
+ st_case_287:
+ switch data[p] {
+ case 9:
+ goto tr353
+ case 32:
+ goto tr353
+ case 40:
+ goto tr122
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st285
+ case 111:
+ goto st288
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st285
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st285
+ }
+ default:
+ goto st285
+ }
+ goto st0
+ st288:
+ if p++; p == pe {
+ goto _test_eof288
+ }
+ st_case_288:
+ switch data[p] {
+ case 9:
+ goto tr353
+ case 32:
+ goto tr353
+ case 40:
+ goto tr122
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st285
+ case 110:
+ goto st289
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st285
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st285
+ }
+ default:
+ goto st285
+ }
+ goto st0
+ st289:
+ if p++; p == pe {
+ goto _test_eof289
+ }
+ st_case_289:
+ switch data[p] {
+ case 9:
+ goto tr353
+ case 32:
+ goto tr353
+ case 40:
+ goto tr122
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st285
+ case 115:
+ goto st290
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st285
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st285
+ }
+ default:
+ goto st285
+ }
+ goto st0
+ st290:
+ if p++; p == pe {
+ goto _test_eof290
+ }
+ st_case_290:
+ switch data[p] {
+ case 9:
+ goto tr353
+ case 32:
+ goto tr353
+ case 40:
+ goto tr122
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st285
+ case 116:
+ goto st291
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st285
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st285
+ }
+ default:
+ goto st285
+ }
+ goto st0
+ st291:
+ if p++; p == pe {
+ goto _test_eof291
+ }
+ st_case_291:
+ switch data[p] {
+ case 9:
+ goto tr348
+ case 32:
+ goto tr348
+ case 40:
+ goto tr122
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st285
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st285
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st285
+ }
+ default:
+ goto st285
+ }
+ goto st0
+tr70:
+// line 84 "parseqt.rl"
+
+ m0 = p
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st292
+ st292:
+ if p++; p == pe {
+ goto _test_eof292
+ }
+ st_case_292:
+// line 9356 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 110:
+ goto st293
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st293:
+ if p++; p == pe {
+ goto _test_eof293
+ }
+ st_case_293:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 117:
+ goto st294
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st294:
+ if p++; p == pe {
+ goto _test_eof294
+ }
+ st_case_294:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 109:
+ goto st295
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st295:
+ if p++; p == pe {
+ goto _test_eof295
+ }
+ st_case_295:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr362
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+tr362:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st296
+ st296:
+ if p++; p == pe {
+ goto _test_eof296
+ }
+ st_case_296:
+// line 9496 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st63
+ case 32:
+ goto st63
+ case 42:
+ goto tr87
+ case 79:
+ goto st297
+ case 95:
+ goto st65
+ case 99:
+ goto st134
+ case 103:
+ goto tr90
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st297:
+ if p++; p == pe {
+ goto _test_eof297
+ }
+ st_case_297:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 112:
+ goto st298
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st298:
+ if p++; p == pe {
+ goto _test_eof298
+ }
+ st_case_298:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 101:
+ goto st299
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st299:
+ if p++; p == pe {
+ goto _test_eof299
+ }
+ st_case_299:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 110:
+ goto st300
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st300:
+ if p++; p == pe {
+ goto _test_eof300
+ }
+ st_case_300:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 71:
+ goto st301
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st301:
+ if p++; p == pe {
+ goto _test_eof301
+ }
+ st_case_301:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 76:
+ goto st302
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st302:
+ if p++; p == pe {
+ goto _test_eof302
+ }
+ st_case_302:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 70:
+ goto st303
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st303:
+ if p++; p == pe {
+ goto _test_eof303
+ }
+ st_case_303:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 101:
+ goto st304
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st304:
+ if p++; p == pe {
+ goto _test_eof304
+ }
+ st_case_304:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 97:
+ goto st305
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 98 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st305:
+ if p++; p == pe {
+ goto _test_eof305
+ }
+ st_case_305:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 116:
+ goto st306
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st306:
+ if p++; p == pe {
+ goto _test_eof306
+ }
+ st_case_306:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 117:
+ goto st307
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st307:
+ if p++; p == pe {
+ goto _test_eof307
+ }
+ st_case_307:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 114:
+ goto st308
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st308:
+ if p++; p == pe {
+ goto _test_eof308
+ }
+ st_case_308:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 101:
+ goto st309
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st309:
+ if p++; p == pe {
+ goto _test_eof309
+ }
+ st_case_309:
+ switch data[p] {
+ case 9:
+ goto st310
+ case 10:
+ goto tr377
+ case 32:
+ goto st310
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st310:
+ if p++; p == pe {
+ goto _test_eof310
+ }
+ st_case_310:
+ switch data[p] {
+ case 9:
+ goto st310
+ case 10:
+ goto tr377
+ case 32:
+ goto st310
+ case 59:
+ goto st67
+ case 99:
+ goto st68
+ case 123:
+ goto st73
+ }
+ goto st0
+tr377:
+// line 47 "parseqt.rl"
+
+ curline++
+ goto st311
+ st311:
+ if p++; p == pe {
+ goto _test_eof311
+ }
+ st_case_311:
+// line 9998 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st311
+ case 32:
+ goto st311
+ case 123:
+ goto st312
+ }
+ goto st0
+ st312:
+ if p++; p == pe {
+ goto _test_eof312
+ }
+ st_case_312:
+ switch data[p] {
+ case 9:
+ goto st312
+ case 10:
+ goto tr380
+ case 32:
+ goto st312
+ }
+ goto st0
+tr380:
+// line 47 "parseqt.rl"
+
+ curline++
+ goto st313
+ st313:
+ if p++; p == pe {
+ goto _test_eof313
+ }
+ st_case_313:
+// line 10032 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st313
+ case 32:
+ goto st313
+ case 95:
+ goto tr382
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr382
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr382
+ }
+ default:
+ goto tr382
+ }
+ goto st0
+tr382:
+// line 122 "parseqt.rl"
+
+ m0 = p
+ goto st314
+ st314:
+ if p++; p == pe {
+ goto _test_eof314
+ }
+ st_case_314:
+// line 10064 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr383
+ case 32:
+ goto tr383
+ case 61:
+ goto tr385
+ case 95:
+ goto st314
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st314
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st314
+ }
+ default:
+ goto st314
+ }
+ goto st0
+tr383:
+// line 122 "parseqt.rl"
+
+ m1 = p
+ goto st315
+ st315:
+ if p++; p == pe {
+ goto _test_eof315
+ }
+ st_case_315:
+// line 10098 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st315
+ case 32:
+ goto st315
+ case 61:
+ goto st316
+ }
+ goto st0
+tr385:
+// line 122 "parseqt.rl"
+
+ m1 = p
+ goto st316
+ st316:
+ if p++; p == pe {
+ goto _test_eof316
+ }
+ st_case_316:
+// line 10118 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st316
+ case 32:
+ goto st316
+ case 48:
+ goto tr388
+ }
+ goto st0
+tr388:
+// line 122 "parseqt.rl"
+
+ m2 = p
+ goto st317
+ st317:
+ if p++; p == pe {
+ goto _test_eof317
+ }
+ st_case_317:
+// line 10138 "parseqt.go"
+ if data[p] == 120 {
+ goto st318
+ }
+ goto st0
+ st318:
+ if p++; p == pe {
+ goto _test_eof318
+ }
+ st_case_318:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st319
+ }
+ goto st0
+ st319:
+ if p++; p == pe {
+ goto _test_eof319
+ }
+ st_case_319:
+ switch data[p] {
+ case 9:
+ goto tr391
+ case 10:
+ goto tr392
+ case 32:
+ goto tr391
+ case 44:
+ goto tr391
+ }
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st319
+ }
+ goto st0
+tr391:
+// line 122 "parseqt.rl"
+
+ m3 = p
+ goto st320
+ st320:
+ if p++; p == pe {
+ goto _test_eof320
+ }
+ st_case_320:
+// line 10181 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st320
+ case 10:
+ goto tr394
+ case 32:
+ goto st320
+ }
+ goto st0
+tr392:
+// line 122 "parseqt.rl"
+
+ m3 = p
+// line 123 "parseqt.rl"
+
+ header.FeatureFlags = append(header.FeatureFlags, Const{Name: data[m0:m1], Value: data[m2:m3]})
+// line 47 "parseqt.rl"
+
+ curline++
+ goto st321
+tr394:
+// line 123 "parseqt.rl"
+
+ header.FeatureFlags = append(header.FeatureFlags, Const{Name: data[m0:m1], Value: data[m2:m3]})
+// line 47 "parseqt.rl"
+
+ curline++
+ goto st321
+ st321:
+ if p++; p == pe {
+ goto _test_eof321
+ }
+ st_case_321:
+// line 10215 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st321
+ case 32:
+ goto st321
+ case 95:
+ goto tr382
+ case 125:
+ goto st322
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr382
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr382
+ }
+ default:
+ goto tr382
+ }
+ goto st0
+ st322:
+ if p++; p == pe {
+ goto _test_eof322
+ }
+ st_case_322:
+ if data[p] == 59 {
+ goto st323
+ }
+ goto st0
+ st323:
+ if p++; p == pe {
+ goto _test_eof323
+ }
+ st_case_323:
+ if data[p] == 10 {
+ goto tr398
+ }
+ goto st0
+tr71:
+// line 84 "parseqt.rl"
+
+ m0 = p
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st324
+ st324:
+ if p++; p == pe {
+ goto _test_eof324
+ }
+ st_case_324:
+// line 10270 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 114:
+ goto st325
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st325:
+ if p++; p == pe {
+ goto _test_eof325
+ }
+ st_case_325:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 105:
+ goto st326
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st326:
+ if p++; p == pe {
+ goto _test_eof326
+ }
+ st_case_326:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 101:
+ goto st327
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st327:
+ if p++; p == pe {
+ goto _test_eof327
+ }
+ st_case_327:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 110:
+ goto st328
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st328:
+ if p++; p == pe {
+ goto _test_eof328
+ }
+ st_case_328:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 100:
+ goto st329
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st329:
+ if p++; p == pe {
+ goto _test_eof329
+ }
+ st_case_329:
+ switch data[p] {
+ case 9:
+ goto tr404
+ case 32:
+ goto tr404
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+tr404:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st330
+ st330:
+ if p++; p == pe {
+ goto _test_eof330
+ }
+ st_case_330:
+// line 10478 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st330
+ case 32:
+ goto st330
+ case 42:
+ goto tr87
+ case 95:
+ goto st65
+ case 99:
+ goto st331
+ case 103:
+ goto tr90
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st331:
+ if p++; p == pe {
+ goto _test_eof331
+ }
+ st_case_331:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 108:
+ goto st332
+ case 111:
+ goto st135
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st332:
+ if p++; p == pe {
+ goto _test_eof332
+ }
+ st_case_332:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 97:
+ goto st333
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 98 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st333:
+ if p++; p == pe {
+ goto _test_eof333
+ }
+ st_case_333:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 115:
+ goto st334
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st334:
+ if p++; p == pe {
+ goto _test_eof334
+ }
+ st_case_334:
+ switch data[p] {
+ case 9:
+ goto st66
+ case 32:
+ goto st66
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 115:
+ goto st335
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st335:
+ if p++; p == pe {
+ goto _test_eof335
+ }
+ st_case_335:
+ switch data[p] {
+ case 9:
+ goto st336
+ case 32:
+ goto st336
+ case 40:
+ goto st75
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st336:
+ if p++; p == pe {
+ goto _test_eof336
+ }
+ st_case_336:
+ switch data[p] {
+ case 9:
+ goto st336
+ case 32:
+ goto st336
+ case 59:
+ goto st67
+ case 95:
+ goto st337
+ case 99:
+ goto st340
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st337
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st337
+ }
+ default:
+ goto st337
+ }
+ goto st0
+ st337:
+ if p++; p == pe {
+ goto _test_eof337
+ }
+ st_case_337:
+ switch data[p] {
+ case 9:
+ goto st338
+ case 32:
+ goto st338
+ case 59:
+ goto st339
+ case 95:
+ goto st337
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st337
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st337
+ }
+ default:
+ goto st337
+ }
+ goto st0
+ st338:
+ if p++; p == pe {
+ goto _test_eof338
+ }
+ st_case_338:
+ switch data[p] {
+ case 9:
+ goto st338
+ case 32:
+ goto st338
+ case 59:
+ goto st339
+ }
+ goto st0
+ st339:
+ if p++; p == pe {
+ goto _test_eof339
+ }
+ st_case_339:
+ switch data[p] {
+ case 9:
+ goto st339
+ case 10:
+ goto tr416
+ case 32:
+ goto st339
+ }
+ goto st0
+ st340:
+ if p++; p == pe {
+ goto _test_eof340
+ }
+ st_case_340:
+ switch data[p] {
+ case 9:
+ goto st338
+ case 32:
+ goto st338
+ case 59:
+ goto st339
+ case 95:
+ goto st337
+ case 111:
+ goto st341
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st337
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st337
+ }
+ default:
+ goto st337
+ }
+ goto st0
+ st341:
+ if p++; p == pe {
+ goto _test_eof341
+ }
+ st_case_341:
+ switch data[p] {
+ case 9:
+ goto st338
+ case 32:
+ goto st338
+ case 59:
+ goto st339
+ case 95:
+ goto st337
+ case 110:
+ goto st342
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st337
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st337
+ }
+ default:
+ goto st337
+ }
+ goto st0
+ st342:
+ if p++; p == pe {
+ goto _test_eof342
+ }
+ st_case_342:
+ switch data[p] {
+ case 9:
+ goto st338
+ case 32:
+ goto st338
+ case 59:
+ goto st339
+ case 95:
+ goto st337
+ case 115:
+ goto st343
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st337
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st337
+ }
+ default:
+ goto st337
+ }
+ goto st0
+ st343:
+ if p++; p == pe {
+ goto _test_eof343
+ }
+ st_case_343:
+ switch data[p] {
+ case 9:
+ goto st338
+ case 32:
+ goto st338
+ case 59:
+ goto st339
+ case 95:
+ goto st337
+ case 116:
+ goto st344
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st337
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st337
+ }
+ default:
+ goto st337
+ }
+ goto st0
+ st344:
+ if p++; p == pe {
+ goto _test_eof344
+ }
+ st_case_344:
+ switch data[p] {
+ case 9:
+ goto st345
+ case 32:
+ goto st345
+ case 59:
+ goto st346
+ case 95:
+ goto st337
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st337
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st337
+ }
+ default:
+ goto st337
+ }
+ goto st0
+ st345:
+ if p++; p == pe {
+ goto _test_eof345
+ }
+ st_case_345:
+ switch data[p] {
+ case 9:
+ goto st345
+ case 32:
+ goto st345
+ case 59:
+ goto st346
+ case 123:
+ goto st73
+ }
+ goto st0
+ st346:
+ if p++; p == pe {
+ goto _test_eof346
+ }
+ st_case_346:
+ switch data[p] {
+ case 9:
+ goto st346
+ case 10:
+ goto tr416
+ case 32:
+ goto st346
+ }
+ goto st0
+tr72:
+// line 84 "parseqt.rl"
+
+ m0 = p
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st347
+ st347:
+ if p++; p == pe {
+ goto _test_eof347
+ }
+ st_case_347:
+// line 10957 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 114:
+ goto st348
+ case 117:
+ goto st362
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st348:
+ if p++; p == pe {
+ goto _test_eof348
+ }
+ st_case_348:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 105:
+ goto st349
+ case 111:
+ goto st356
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st349:
+ if p++; p == pe {
+ goto _test_eof349
+ }
+ st_case_349:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 118:
+ goto st350
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st350:
+ if p++; p == pe {
+ goto _test_eof350
+ }
+ st_case_350:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 97:
+ goto st351
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 98 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st351:
+ if p++; p == pe {
+ goto _test_eof351
+ }
+ st_case_351:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 116:
+ goto st352
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st352:
+ if p++; p == pe {
+ goto _test_eof352
+ }
+ st_case_352:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 101:
+ goto st353
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st353:
+ if p++; p == pe {
+ goto _test_eof353
+ }
+ st_case_353:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st354
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st354:
+ if p++; p == pe {
+ goto _test_eof354
+ }
+ st_case_354:
+ switch data[p] {
+ case 9:
+ goto st355
+ case 10:
+ goto tr433
+ case 32:
+ goto st355
+ case 42:
+ goto tr252
+ case 95:
+ goto st188
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 58 {
+ goto st188
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st188
+ }
+ default:
+ goto st188
+ }
+ goto st0
+ st355:
+ if p++; p == pe {
+ goto _test_eof355
+ }
+ st_case_355:
+ switch data[p] {
+ case 9:
+ goto st355
+ case 10:
+ goto tr433
+ case 32:
+ goto st355
+ case 42:
+ goto tr252
+ case 95:
+ goto st65
+ case 99:
+ goto st193
+ case 103:
+ goto st191
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st356:
+ if p++; p == pe {
+ goto _test_eof356
+ }
+ st_case_356:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 116:
+ goto st357
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st357:
+ if p++; p == pe {
+ goto _test_eof357
+ }
+ st_case_357:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 101:
+ goto st358
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st358:
+ if p++; p == pe {
+ goto _test_eof358
+ }
+ st_case_358:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 99:
+ goto st359
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st359:
+ if p++; p == pe {
+ goto _test_eof359
+ }
+ st_case_359:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 116:
+ goto st360
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st360:
+ if p++; p == pe {
+ goto _test_eof360
+ }
+ st_case_360:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 101:
+ goto st361
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st361:
+ if p++; p == pe {
+ goto _test_eof361
+ }
+ st_case_361:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 100:
+ goto st353
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st362:
+ if p++; p == pe {
+ goto _test_eof362
+ }
+ st_case_362:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 98:
+ goto st363
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st363:
+ if p++; p == pe {
+ goto _test_eof363
+ }
+ st_case_363:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 108:
+ goto st364
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st364:
+ if p++; p == pe {
+ goto _test_eof364
+ }
+ st_case_364:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 105:
+ goto st365
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st365:
+ if p++; p == pe {
+ goto _test_eof365
+ }
+ st_case_365:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 99:
+ goto st366
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st366:
+ if p++; p == pe {
+ goto _test_eof366
+ }
+ st_case_366:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st367
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st367:
+ if p++; p == pe {
+ goto _test_eof367
+ }
+ st_case_367:
+ switch data[p] {
+ case 9:
+ goto st368
+ case 10:
+ goto tr445
+ case 32:
+ goto st368
+ case 42:
+ goto tr252
+ case 95:
+ goto st188
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 58 {
+ goto st188
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st188
+ }
+ default:
+ goto st188
+ }
+ goto st0
+ st368:
+ if p++; p == pe {
+ goto _test_eof368
+ }
+ st_case_368:
+ switch data[p] {
+ case 9:
+ goto st368
+ case 10:
+ goto tr445
+ case 32:
+ goto st368
+ case 42:
+ goto tr252
+ case 95:
+ goto st65
+ case 99:
+ goto st193
+ case 103:
+ goto st191
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+tr73:
+// line 84 "parseqt.rl"
+
+ m0 = p
+// line 107 "parseqt.rl"
+
+ m0 = p
+ goto st369
+ st369:
+ if p++; p == pe {
+ goto _test_eof369
+ }
+ st_case_369:
+// line 11706 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 116:
+ goto st370
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st370:
+ if p++; p == pe {
+ goto _test_eof370
+ }
+ st_case_370:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 97:
+ goto st371
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 98 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st371:
+ if p++; p == pe {
+ goto _test_eof371
+ }
+ st_case_371:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 116:
+ goto st372
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st372:
+ if p++; p == pe {
+ goto _test_eof372
+ }
+ st_case_372:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 105:
+ goto st373
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st373:
+ if p++; p == pe {
+ goto _test_eof373
+ }
+ st_case_373:
+ switch data[p] {
+ case 9:
+ goto tr82
+ case 32:
+ goto tr82
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ case 99:
+ goto st374
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+ st374:
+ if p++; p == pe {
+ goto _test_eof374
+ }
+ st_case_374:
+ switch data[p] {
+ case 9:
+ goto tr451
+ case 32:
+ goto tr451
+ case 40:
+ goto tr83
+ case 42:
+ goto tr84
+ case 58:
+ goto st188
+ case 95:
+ goto st62
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st62
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st62
+ }
+ default:
+ goto st62
+ }
+ goto st0
+tr451:
+// line 107 "parseqt.rl"
+
+ m1 = p; m4 = 0
+ goto st375
+ st375:
+ if p++; p == pe {
+ goto _test_eof375
+ }
+ st_case_375:
+// line 11914 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st375
+ case 32:
+ goto st375
+ case 42:
+ goto tr87
+ case 58:
+ goto st188
+ case 95:
+ goto st376
+ case 99:
+ goto st377
+ case 103:
+ goto tr455
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st376:
+ if p++; p == pe {
+ goto _test_eof376
+ }
+ st_case_376:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st377:
+ if p++; p == pe {
+ goto _test_eof377
+ }
+ st_case_377:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 111:
+ goto st378
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st378:
+ if p++; p == pe {
+ goto _test_eof378
+ }
+ st_case_378:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 110:
+ goto st379
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st379:
+ if p++; p == pe {
+ goto _test_eof379
+ }
+ st_case_379:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 115:
+ goto st380
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st380:
+ if p++; p == pe {
+ goto _test_eof380
+ }
+ st_case_380:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 116:
+ goto st381
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st381:
+ if p++; p == pe {
+ goto _test_eof381
+ }
+ st_case_381:
+ switch data[p] {
+ case 9:
+ goto st382
+ case 32:
+ goto st382
+ case 40:
+ goto st75
+ case 42:
+ goto tr87
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 103:
+ goto tr461
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st382:
+ if p++; p == pe {
+ goto _test_eof382
+ }
+ st_case_382:
+ switch data[p] {
+ case 9:
+ goto st382
+ case 32:
+ goto st382
+ case 42:
+ goto tr87
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 99:
+ goto st383
+ case 103:
+ goto tr455
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st383:
+ if p++; p == pe {
+ goto _test_eof383
+ }
+ st_case_383:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 111:
+ goto st384
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st384:
+ if p++; p == pe {
+ goto _test_eof384
+ }
+ st_case_384:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 110:
+ goto st385
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st385:
+ if p++; p == pe {
+ goto _test_eof385
+ }
+ st_case_385:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 115:
+ goto st386
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st386:
+ if p++; p == pe {
+ goto _test_eof386
+ }
+ st_case_386:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 116:
+ goto st387
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st387:
+ if p++; p == pe {
+ goto _test_eof387
+ }
+ st_case_387:
+ switch data[p] {
+ case 9:
+ goto st139
+ case 32:
+ goto st139
+ case 40:
+ goto st75
+ case 42:
+ goto tr87
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 103:
+ goto tr461
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+tr461:
+// line 109 "parseqt.rl"
+
+ m2 = p
+ goto st388
+ st388:
+ if p++; p == pe {
+ goto _test_eof388
+ }
+ st_case_388:
+// line 12408 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 108:
+ goto st389
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st389:
+ if p++; p == pe {
+ goto _test_eof389
+ }
+ st_case_389:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st390
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st390
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st390
+ }
+ default:
+ goto st390
+ }
+ goto st0
+ st390:
+ if p++; p == pe {
+ goto _test_eof390
+ }
+ st_case_390:
+ switch data[p] {
+ case 9:
+ goto tr469
+ case 32:
+ goto tr469
+ case 40:
+ goto tr187
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st390
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st390
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st390
+ }
+ default:
+ goto st390
+ }
+ goto st0
+tr469:
+// line 109 "parseqt.rl"
+
+ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4}
+ goto st391
+ st391:
+ if p++; p == pe {
+ goto _test_eof391
+ }
+ st_case_391:
+// line 12524 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st391
+ case 32:
+ goto st391
+ case 40:
+ goto tr124
+ case 42:
+ goto tr252
+ case 59:
+ goto st67
+ case 95:
+ goto st65
+ case 99:
+ goto st193
+ case 103:
+ goto st191
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+tr455:
+// line 109 "parseqt.rl"
+
+ m2 = p
+ goto st392
+ st392:
+ if p++; p == pe {
+ goto _test_eof392
+ }
+ st_case_392:
+// line 12568 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st376
+ case 108:
+ goto st393
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st376
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st376
+ }
+ default:
+ goto st376
+ }
+ goto st0
+ st393:
+ if p++; p == pe {
+ goto _test_eof393
+ }
+ st_case_393:
+ switch data[p] {
+ case 9:
+ goto st198
+ case 32:
+ goto st198
+ case 40:
+ goto st75
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st394
+ case 99:
+ goto st396
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st394
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st394
+ }
+ default:
+ goto st394
+ }
+ goto st0
+ st394:
+ if p++; p == pe {
+ goto _test_eof394
+ }
+ st_case_394:
+ switch data[p] {
+ case 9:
+ goto tr474
+ case 32:
+ goto tr474
+ case 40:
+ goto tr122
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 95:
+ goto st394
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st394
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st394
+ }
+ default:
+ goto st394
+ }
+ goto st0
+tr474:
+// line 109 "parseqt.rl"
+
+ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4}
+ goto st395
+ st395:
+ if p++; p == pe {
+ goto _test_eof395
+ }
+ st_case_395:
+// line 12682 "parseqt.go"
+ switch data[p] {
+ case 9:
+ goto st395
+ case 32:
+ goto st395
+ case 40:
+ goto tr124
+ case 42:
+ goto tr252
+ case 95:
+ goto st65
+ case 99:
+ goto st193
+ case 103:
+ goto st191
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st65
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st65
+ }
+ default:
+ goto st65
+ }
+ goto st0
+ st396:
+ if p++; p == pe {
+ goto _test_eof396
+ }
+ st_case_396:
+ switch data[p] {
+ case 9:
+ goto tr474
+ case 32:
+ goto tr474
+ case 40:
+ goto tr122
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 95:
+ goto st394
+ case 111:
+ goto st397
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st394
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st394
+ }
+ default:
+ goto st394
+ }
+ goto st0
+ st397:
+ if p++; p == pe {
+ goto _test_eof397
+ }
+ st_case_397:
+ switch data[p] {
+ case 9:
+ goto tr474
+ case 32:
+ goto tr474
+ case 40:
+ goto tr122
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 95:
+ goto st394
+ case 110:
+ goto st398
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st394
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st394
+ }
+ default:
+ goto st394
+ }
+ goto st0
+ st398:
+ if p++; p == pe {
+ goto _test_eof398
+ }
+ st_case_398:
+ switch data[p] {
+ case 9:
+ goto tr474
+ case 32:
+ goto tr474
+ case 40:
+ goto tr122
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 95:
+ goto st394
+ case 115:
+ goto st399
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st394
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st394
+ }
+ default:
+ goto st394
+ }
+ goto st0
+ st399:
+ if p++; p == pe {
+ goto _test_eof399
+ }
+ st_case_399:
+ switch data[p] {
+ case 9:
+ goto tr474
+ case 32:
+ goto tr474
+ case 40:
+ goto tr122
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 95:
+ goto st394
+ case 116:
+ goto st400
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st394
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st394
+ }
+ default:
+ goto st394
+ }
+ goto st0
+ st400:
+ if p++; p == pe {
+ goto _test_eof400
+ }
+ st_case_400:
+ switch data[p] {
+ case 9:
+ goto tr469
+ case 32:
+ goto tr469
+ case 40:
+ goto tr122
+ case 42:
+ goto tr252
+ case 58:
+ goto st188
+ case 59:
+ goto st67
+ case 95:
+ goto st394
+ case 123:
+ goto st73
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st394
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st394
+ }
+ default:
+ goto st394
+ }
+ goto st0
+ st401:
+ if p++; p == pe {
+ goto _test_eof401
+ }
+ st_case_401:
+ switch data[p] {
+ case 9:
+ goto st401
+ case 32:
+ goto st401
+ case 59:
+ goto st402
+ }
+ goto st0
+ st402:
+ if p++; p == pe {
+ goto _test_eof402
+ }
+ st_case_402:
+ if data[p] == 10 {
+ goto tr481
+ }
+ goto st0
+ st403:
+ if p++; p == pe {
+ goto _test_eof403
+ }
+ st_case_403:
+ if data[p] == 95 {
+ goto tr482
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto tr482
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto tr482
+ }
+ default:
+ goto tr482
+ }
+ goto st0
+tr482:
+// line 84 "parseqt.rl"
+
+ m0 = p
+ goto st404
+ st404:
+ if p++; p == pe {
+ goto _test_eof404
+ }
+ st_case_404:
+// line 12938 "parseqt.go"
+ switch data[p] {
+ case 40:
+ goto tr83
+ case 95:
+ goto st404
+ }
+ switch {
+ case data[p] < 65:
+ if 48 <= data[p] && data[p] <= 57 {
+ goto st404
+ }
+ case data[p] > 90:
+ if 97 <= data[p] && data[p] <= 122 {
+ goto st404
+ }
+ default:
+ goto st404
+ }
+ goto st0
+ st405:
+ if p++; p == pe {
+ goto _test_eof405
+ }
+ st_case_405:
+ if data[p] == 105 {
+ goto st406
+ }
+ goto st0
+ st406:
+ if p++; p == pe {
+ goto _test_eof406
+ }
+ st_case_406:
+ if data[p] == 102 {
+ goto st407
+ }
+ goto st0
+ st407:
+ if p++; p == pe {
+ goto _test_eof407
+ }
+ st_case_407:
+ if data[p] == 32 {
+ goto st408
+ }
+ goto st0
+ st408:
+ if p++; p == pe {
+ goto _test_eof408
+ }
+ st_case_408:
+ if data[p] == 81 {
+ goto st409
+ }
+ goto st0
+ st409:
+ if p++; p == pe {
+ goto _test_eof409
+ }
+ st_case_409:
+ if data[p] == 84 {
+ goto st410
+ }
+ goto st0
+ st410:
+ if p++; p == pe {
+ goto _test_eof410
+ }
+ st_case_410:
+ if data[p] == 95 {
+ goto st411
+ }
+ goto st0
+ st411:
+ if p++; p == pe {
+ goto _test_eof411
+ }
+ st_case_411:
+ if data[p] == 68 {
+ goto st412
+ }
+ goto st0
+ st412:
+ if p++; p == pe {
+ goto _test_eof412
+ }
+ st_case_412:
+ if data[p] == 69 {
+ goto st413
+ }
+ goto st0
+ st413:
+ if p++; p == pe {
+ goto _test_eof413
+ }
+ st_case_413:
+ if data[p] == 80 {
+ goto st414
+ }
+ goto st0
+ st414:
+ if p++; p == pe {
+ goto _test_eof414
+ }
+ st_case_414:
+ if data[p] == 82 {
+ goto st415
+ }
+ goto st0
+ st415:
+ if p++; p == pe {
+ goto _test_eof415
+ }
+ st_case_415:
+ if data[p] == 69 {
+ goto st416
+ }
+ goto st0
+ st416:
+ if p++; p == pe {
+ goto _test_eof416
+ }
+ st_case_416:
+ if data[p] == 67 {
+ goto st417
+ }
+ goto st0
+ st417:
+ if p++; p == pe {
+ goto _test_eof417
+ }
+ st_case_417:
+ if data[p] == 65 {
+ goto st418
+ }
+ goto st0
+ st418:
+ if p++; p == pe {
+ goto _test_eof418
+ }
+ st_case_418:
+ if data[p] == 84 {
+ goto st419
+ }
+ goto st0
+ st419:
+ if p++; p == pe {
+ goto _test_eof419
+ }
+ st_case_419:
+ if data[p] == 69 {
+ goto st420
+ }
+ goto st0
+ st420:
+ if p++; p == pe {
+ goto _test_eof420
+ }
+ st_case_420:
+ if data[p] == 68 {
+ goto st421
+ }
+ goto st0
+ st421:
+ if p++; p == pe {
+ goto _test_eof421
+ }
+ st_case_421:
+ if data[p] == 95 {
+ goto st422
+ }
+ goto st0
+ st422:
+ if p++; p == pe {
+ goto _test_eof422
+ }
+ st_case_422:
+ if data[p] == 83 {
+ goto st423
+ }
+ goto st0
+ st423:
+ if p++; p == pe {
+ goto _test_eof423
+ }
+ st_case_423:
+ if data[p] == 73 {
+ goto st424
+ }
+ goto st0
+ st424:
+ if p++; p == pe {
+ goto _test_eof424
+ }
+ st_case_424:
+ if data[p] == 78 {
+ goto st425
+ }
+ goto st0
+ st425:
+ if p++; p == pe {
+ goto _test_eof425
+ }
+ st_case_425:
+ if data[p] == 67 {
+ goto st426
+ }
+ goto st0
+ st426:
+ if p++; p == pe {
+ goto _test_eof426
+ }
+ st_case_426:
+ if data[p] == 69 {
+ goto st427
+ }
+ goto st0
+ st427:
+ if p++; p == pe {
+ goto _test_eof427
+ }
+ st_case_427:
+ if data[p] == 40 {
+ goto st428
+ }
+ goto st0
+ st428:
+ if p++; p == pe {
+ goto _test_eof428
+ }
+ st_case_428:
+ if data[p] == 10 {
+ goto st0
+ }
+ goto st429
+ st429:
+ if p++; p == pe {
+ goto _test_eof429
+ }
+ st_case_429:
+ switch data[p] {
+ case 10:
+ goto st0
+ case 41:
+ goto st430
+ }
+ goto st429
+ st430:
+ if p++; p == pe {
+ goto _test_eof430
+ }
+ st_case_430:
+ switch data[p] {
+ case 9:
+ goto st430
+ case 10:
+ goto tr509
+ case 32:
+ goto st430
+ case 41:
+ goto st430
+ }
+ goto st429
+tr509:
+// line 47 "parseqt.rl"
+
+ curline++
+ goto st431
+ st431:
+ if p++; p == pe {
+ goto _test_eof431
+ }
+ st_case_431:
+// line 13212 "parseqt.go"
+ switch data[p] {
+ case 10:
+ goto tr511
+ case 35:
+ goto st440
+ }
+ goto st432
+ st432:
+ if p++; p == pe {
+ goto _test_eof432
+ }
+ st_case_432:
+ if data[p] == 10 {
+ goto tr511
+ }
+ goto st432
+tr511:
+// line 47 "parseqt.rl"
+
+ curline++
+ goto st433
+ st433:
+ if p++; p == pe {
+ goto _test_eof433
+ }
+ st_case_433:
+// line 13239 "parseqt.go"
+ if data[p] == 35 {
+ goto st434
+ }
+ goto st0
+ st434:
+ if p++; p == pe {
+ goto _test_eof434
+ }
+ st_case_434:
+ if data[p] == 101 {
+ goto st435
+ }
+ goto st0
+ st435:
+ if p++; p == pe {
+ goto _test_eof435
+ }
+ st_case_435:
+ if data[p] == 110 {
+ goto st436
+ }
+ goto st0
+ st436:
+ if p++; p == pe {
+ goto _test_eof436
+ }
+ st_case_436:
+ if data[p] == 100 {
+ goto st437
+ }
+ goto st0
+ st437:
+ if p++; p == pe {
+ goto _test_eof437
+ }
+ st_case_437:
+ if data[p] == 105 {
+ goto st438
+ }
+ goto st0
+ st438:
+ if p++; p == pe {
+ goto _test_eof438
+ }
+ st_case_438:
+ if data[p] == 102 {
+ goto st439
+ }
+ goto st0
+ st439:
+ if p++; p == pe {
+ goto _test_eof439
+ }
+ st_case_439:
+ switch data[p] {
+ case 9:
+ goto st439
+ case 10:
+ goto tr519
+ case 32:
+ goto st439
+ }
+ goto st0
+ st440:
+ if p++; p == pe {
+ goto _test_eof440
+ }
+ st_case_440:
+ switch data[p] {
+ case 10:
+ goto tr511
+ case 101:
+ goto st441
+ }
+ goto st432
+ st441:
+ if p++; p == pe {
+ goto _test_eof441
+ }
+ st_case_441:
+ switch data[p] {
+ case 10:
+ goto tr511
+ case 110:
+ goto st442
+ }
+ goto st432
+ st442:
+ if p++; p == pe {
+ goto _test_eof442
+ }
+ st_case_442:
+ switch data[p] {
+ case 10:
+ goto tr511
+ case 100:
+ goto st443
+ }
+ goto st432
+ st443:
+ if p++; p == pe {
+ goto _test_eof443
+ }
+ st_case_443:
+ switch data[p] {
+ case 10:
+ goto tr511
+ case 105:
+ goto st444
+ }
+ goto st432
+ st444:
+ if p++; p == pe {
+ goto _test_eof444
+ }
+ st_case_444:
+ switch data[p] {
+ case 10:
+ goto tr511
+ case 102:
+ goto st445
+ }
+ goto st432
+ st445:
+ if p++; p == pe {
+ goto _test_eof445
+ }
+ st_case_445:
+ if data[p] == 10 {
+ goto st0
+ }
+ goto st432
+ st_out:
+ _test_eof447: cs = 447; goto _test_eof
+ _test_eof1: cs = 1; goto _test_eof
+ _test_eof2: cs = 2; goto _test_eof
+ _test_eof3: cs = 3; goto _test_eof
+ _test_eof4: cs = 4; goto _test_eof
+ _test_eof5: cs = 5; goto _test_eof
+ _test_eof6: cs = 6; goto _test_eof
+ _test_eof7: cs = 7; goto _test_eof
+ _test_eof8: cs = 8; goto _test_eof
+ _test_eof9: cs = 9; goto _test_eof
+ _test_eof10: cs = 10; goto _test_eof
+ _test_eof11: cs = 11; goto _test_eof
+ _test_eof12: cs = 12; goto _test_eof
+ _test_eof13: cs = 13; goto _test_eof
+ _test_eof14: cs = 14; goto _test_eof
+ _test_eof15: cs = 15; goto _test_eof
+ _test_eof16: cs = 16; goto _test_eof
+ _test_eof17: cs = 17; goto _test_eof
+ _test_eof18: cs = 18; goto _test_eof
+ _test_eof19: cs = 19; goto _test_eof
+ _test_eof20: cs = 20; goto _test_eof
+ _test_eof21: cs = 21; goto _test_eof
+ _test_eof448: cs = 448; goto _test_eof
+ _test_eof22: cs = 22; goto _test_eof
+ _test_eof23: cs = 23; goto _test_eof
+ _test_eof24: cs = 24; goto _test_eof
+ _test_eof25: cs = 25; goto _test_eof
+ _test_eof26: cs = 26; goto _test_eof
+ _test_eof27: cs = 27; goto _test_eof
+ _test_eof28: cs = 28; goto _test_eof
+ _test_eof29: cs = 29; goto _test_eof
+ _test_eof30: cs = 30; goto _test_eof
+ _test_eof31: cs = 31; goto _test_eof
+ _test_eof32: cs = 32; goto _test_eof
+ _test_eof33: cs = 33; goto _test_eof
+ _test_eof34: cs = 34; goto _test_eof
+ _test_eof35: cs = 35; goto _test_eof
+ _test_eof36: cs = 36; goto _test_eof
+ _test_eof37: cs = 37; goto _test_eof
+ _test_eof38: cs = 38; goto _test_eof
+ _test_eof39: cs = 39; goto _test_eof
+ _test_eof40: cs = 40; goto _test_eof
+ _test_eof41: cs = 41; goto _test_eof
+ _test_eof42: cs = 42; goto _test_eof
+ _test_eof43: cs = 43; goto _test_eof
+ _test_eof44: cs = 44; goto _test_eof
+ _test_eof45: cs = 45; goto _test_eof
+ _test_eof46: cs = 46; goto _test_eof
+ _test_eof47: cs = 47; goto _test_eof
+ _test_eof48: cs = 48; goto _test_eof
+ _test_eof49: cs = 49; goto _test_eof
+ _test_eof50: cs = 50; goto _test_eof
+ _test_eof51: cs = 51; goto _test_eof
+ _test_eof52: cs = 52; goto _test_eof
+ _test_eof53: cs = 53; goto _test_eof
+ _test_eof54: cs = 54; goto _test_eof
+ _test_eof55: cs = 55; goto _test_eof
+ _test_eof56: cs = 56; goto _test_eof
+ _test_eof449: cs = 449; goto _test_eof
+ _test_eof57: cs = 57; goto _test_eof
+ _test_eof446: cs = 446; goto _test_eof
+ _test_eof453: cs = 453; goto _test_eof
+ _test_eof454: cs = 454; goto _test_eof
+ _test_eof450: cs = 450; goto _test_eof
+ _test_eof58: cs = 58; goto _test_eof
+ _test_eof59: cs = 59; goto _test_eof
+ _test_eof60: cs = 60; goto _test_eof
+ _test_eof61: cs = 61; goto _test_eof
+ _test_eof62: cs = 62; goto _test_eof
+ _test_eof63: cs = 63; goto _test_eof
+ _test_eof64: cs = 64; goto _test_eof
+ _test_eof65: cs = 65; goto _test_eof
+ _test_eof66: cs = 66; goto _test_eof
+ _test_eof67: cs = 67; goto _test_eof
+ _test_eof68: cs = 68; goto _test_eof
+ _test_eof69: cs = 69; goto _test_eof
+ _test_eof70: cs = 70; goto _test_eof
+ _test_eof71: cs = 71; goto _test_eof
+ _test_eof72: cs = 72; goto _test_eof
+ _test_eof73: cs = 73; goto _test_eof
+ _test_eof74: cs = 74; goto _test_eof
+ _test_eof75: cs = 75; goto _test_eof
+ _test_eof76: cs = 76; goto _test_eof
+ _test_eof77: cs = 77; goto _test_eof
+ _test_eof78: cs = 78; goto _test_eof
+ _test_eof79: cs = 79; goto _test_eof
+ _test_eof80: cs = 80; goto _test_eof
+ _test_eof81: cs = 81; goto _test_eof
+ _test_eof82: cs = 82; goto _test_eof
+ _test_eof83: cs = 83; goto _test_eof
+ _test_eof84: cs = 84; goto _test_eof
+ _test_eof85: cs = 85; goto _test_eof
+ _test_eof86: cs = 86; goto _test_eof
+ _test_eof87: cs = 87; goto _test_eof
+ _test_eof88: cs = 88; goto _test_eof
+ _test_eof89: cs = 89; goto _test_eof
+ _test_eof90: cs = 90; goto _test_eof
+ _test_eof91: cs = 91; goto _test_eof
+ _test_eof92: cs = 92; goto _test_eof
+ _test_eof93: cs = 93; goto _test_eof
+ _test_eof94: cs = 94; goto _test_eof
+ _test_eof95: cs = 95; goto _test_eof
+ _test_eof96: cs = 96; goto _test_eof
+ _test_eof97: cs = 97; goto _test_eof
+ _test_eof98: cs = 98; goto _test_eof
+ _test_eof99: cs = 99; goto _test_eof
+ _test_eof100: cs = 100; goto _test_eof
+ _test_eof101: cs = 101; goto _test_eof
+ _test_eof102: cs = 102; goto _test_eof
+ _test_eof103: cs = 103; goto _test_eof
+ _test_eof104: cs = 104; goto _test_eof
+ _test_eof105: cs = 105; goto _test_eof
+ _test_eof106: cs = 106; goto _test_eof
+ _test_eof107: cs = 107; goto _test_eof
+ _test_eof108: cs = 108; goto _test_eof
+ _test_eof109: cs = 109; goto _test_eof
+ _test_eof110: cs = 110; goto _test_eof
+ _test_eof111: cs = 111; goto _test_eof
+ _test_eof112: cs = 112; goto _test_eof
+ _test_eof113: cs = 113; goto _test_eof
+ _test_eof114: cs = 114; goto _test_eof
+ _test_eof115: cs = 115; goto _test_eof
+ _test_eof116: cs = 116; goto _test_eof
+ _test_eof117: cs = 117; goto _test_eof
+ _test_eof118: cs = 118; goto _test_eof
+ _test_eof119: cs = 119; goto _test_eof
+ _test_eof120: cs = 120; goto _test_eof
+ _test_eof121: cs = 121; goto _test_eof
+ _test_eof122: cs = 122; goto _test_eof
+ _test_eof123: cs = 123; goto _test_eof
+ _test_eof124: cs = 124; goto _test_eof
+ _test_eof125: cs = 125; goto _test_eof
+ _test_eof126: cs = 126; goto _test_eof
+ _test_eof127: cs = 127; goto _test_eof
+ _test_eof128: cs = 128; goto _test_eof
+ _test_eof129: cs = 129; goto _test_eof
+ _test_eof130: cs = 130; goto _test_eof
+ _test_eof131: cs = 131; goto _test_eof
+ _test_eof132: cs = 132; goto _test_eof
+ _test_eof133: cs = 133; goto _test_eof
+ _test_eof134: cs = 134; goto _test_eof
+ _test_eof135: cs = 135; goto _test_eof
+ _test_eof136: cs = 136; goto _test_eof
+ _test_eof137: cs = 137; goto _test_eof
+ _test_eof138: cs = 138; goto _test_eof
+ _test_eof139: cs = 139; goto _test_eof
+ _test_eof140: cs = 140; goto _test_eof
+ _test_eof141: cs = 141; goto _test_eof
+ _test_eof142: cs = 142; goto _test_eof
+ _test_eof143: cs = 143; goto _test_eof
+ _test_eof144: cs = 144; goto _test_eof
+ _test_eof145: cs = 145; goto _test_eof
+ _test_eof451: cs = 451; goto _test_eof
+ _test_eof146: cs = 146; goto _test_eof
+ _test_eof147: cs = 147; goto _test_eof
+ _test_eof148: cs = 148; goto _test_eof
+ _test_eof149: cs = 149; goto _test_eof
+ _test_eof150: cs = 150; goto _test_eof
+ _test_eof151: cs = 151; goto _test_eof
+ _test_eof152: cs = 152; goto _test_eof
+ _test_eof153: cs = 153; goto _test_eof
+ _test_eof154: cs = 154; goto _test_eof
+ _test_eof155: cs = 155; goto _test_eof
+ _test_eof156: cs = 156; goto _test_eof
+ _test_eof157: cs = 157; goto _test_eof
+ _test_eof158: cs = 158; goto _test_eof
+ _test_eof159: cs = 159; goto _test_eof
+ _test_eof160: cs = 160; goto _test_eof
+ _test_eof452: cs = 452; goto _test_eof
+ _test_eof161: cs = 161; goto _test_eof
+ _test_eof162: cs = 162; goto _test_eof
+ _test_eof163: cs = 163; goto _test_eof
+ _test_eof164: cs = 164; goto _test_eof
+ _test_eof165: cs = 165; goto _test_eof
+ _test_eof166: cs = 166; goto _test_eof
+ _test_eof167: cs = 167; goto _test_eof
+ _test_eof168: cs = 168; goto _test_eof
+ _test_eof169: cs = 169; goto _test_eof
+ _test_eof170: cs = 170; goto _test_eof
+ _test_eof171: cs = 171; goto _test_eof
+ _test_eof172: cs = 172; goto _test_eof
+ _test_eof173: cs = 173; goto _test_eof
+ _test_eof174: cs = 174; goto _test_eof
+ _test_eof175: cs = 175; goto _test_eof
+ _test_eof176: cs = 176; goto _test_eof
+ _test_eof177: cs = 177; goto _test_eof
+ _test_eof178: cs = 178; goto _test_eof
+ _test_eof179: cs = 179; goto _test_eof
+ _test_eof180: cs = 180; goto _test_eof
+ _test_eof181: cs = 181; goto _test_eof
+ _test_eof182: cs = 182; goto _test_eof
+ _test_eof183: cs = 183; goto _test_eof
+ _test_eof184: cs = 184; goto _test_eof
+ _test_eof185: cs = 185; goto _test_eof
+ _test_eof186: cs = 186; goto _test_eof
+ _test_eof187: cs = 187; goto _test_eof
+ _test_eof188: cs = 188; goto _test_eof
+ _test_eof189: cs = 189; goto _test_eof
+ _test_eof190: cs = 190; goto _test_eof
+ _test_eof191: cs = 191; goto _test_eof
+ _test_eof192: cs = 192; goto _test_eof
+ _test_eof193: cs = 193; goto _test_eof
+ _test_eof194: cs = 194; goto _test_eof
+ _test_eof195: cs = 195; goto _test_eof
+ _test_eof196: cs = 196; goto _test_eof
+ _test_eof197: cs = 197; goto _test_eof
+ _test_eof198: cs = 198; goto _test_eof
+ _test_eof199: cs = 199; goto _test_eof
+ _test_eof200: cs = 200; goto _test_eof
+ _test_eof201: cs = 201; goto _test_eof
+ _test_eof202: cs = 202; goto _test_eof
+ _test_eof203: cs = 203; goto _test_eof
+ _test_eof204: cs = 204; goto _test_eof
+ _test_eof205: cs = 205; goto _test_eof
+ _test_eof206: cs = 206; goto _test_eof
+ _test_eof207: cs = 207; goto _test_eof
+ _test_eof208: cs = 208; goto _test_eof
+ _test_eof209: cs = 209; goto _test_eof
+ _test_eof210: cs = 210; goto _test_eof
+ _test_eof211: cs = 211; goto _test_eof
+ _test_eof212: cs = 212; goto _test_eof
+ _test_eof213: cs = 213; goto _test_eof
+ _test_eof214: cs = 214; goto _test_eof
+ _test_eof215: cs = 215; goto _test_eof
+ _test_eof216: cs = 216; goto _test_eof
+ _test_eof217: cs = 217; goto _test_eof
+ _test_eof218: cs = 218; goto _test_eof
+ _test_eof219: cs = 219; goto _test_eof
+ _test_eof220: cs = 220; goto _test_eof
+ _test_eof221: cs = 221; goto _test_eof
+ _test_eof222: cs = 222; goto _test_eof
+ _test_eof223: cs = 223; goto _test_eof
+ _test_eof224: cs = 224; goto _test_eof
+ _test_eof225: cs = 225; goto _test_eof
+ _test_eof226: cs = 226; goto _test_eof
+ _test_eof227: cs = 227; goto _test_eof
+ _test_eof228: cs = 228; goto _test_eof
+ _test_eof229: cs = 229; goto _test_eof
+ _test_eof230: cs = 230; goto _test_eof
+ _test_eof231: cs = 231; goto _test_eof
+ _test_eof232: cs = 232; goto _test_eof
+ _test_eof233: cs = 233; goto _test_eof
+ _test_eof234: cs = 234; goto _test_eof
+ _test_eof235: cs = 235; goto _test_eof
+ _test_eof236: cs = 236; goto _test_eof
+ _test_eof237: cs = 237; goto _test_eof
+ _test_eof238: cs = 238; goto _test_eof
+ _test_eof239: cs = 239; goto _test_eof
+ _test_eof240: cs = 240; goto _test_eof
+ _test_eof241: cs = 241; goto _test_eof
+ _test_eof242: cs = 242; goto _test_eof
+ _test_eof243: cs = 243; goto _test_eof
+ _test_eof244: cs = 244; goto _test_eof
+ _test_eof245: cs = 245; goto _test_eof
+ _test_eof246: cs = 246; goto _test_eof
+ _test_eof247: cs = 247; goto _test_eof
+ _test_eof248: cs = 248; goto _test_eof
+ _test_eof249: cs = 249; goto _test_eof
+ _test_eof250: cs = 250; goto _test_eof
+ _test_eof251: cs = 251; goto _test_eof
+ _test_eof252: cs = 252; goto _test_eof
+ _test_eof253: cs = 253; goto _test_eof
+ _test_eof254: cs = 254; goto _test_eof
+ _test_eof255: cs = 255; goto _test_eof
+ _test_eof256: cs = 256; goto _test_eof
+ _test_eof257: cs = 257; goto _test_eof
+ _test_eof258: cs = 258; goto _test_eof
+ _test_eof259: cs = 259; goto _test_eof
+ _test_eof260: cs = 260; goto _test_eof
+ _test_eof261: cs = 261; goto _test_eof
+ _test_eof262: cs = 262; goto _test_eof
+ _test_eof263: cs = 263; goto _test_eof
+ _test_eof264: cs = 264; goto _test_eof
+ _test_eof265: cs = 265; goto _test_eof
+ _test_eof266: cs = 266; goto _test_eof
+ _test_eof267: cs = 267; goto _test_eof
+ _test_eof268: cs = 268; goto _test_eof
+ _test_eof269: cs = 269; goto _test_eof
+ _test_eof270: cs = 270; goto _test_eof
+ _test_eof271: cs = 271; goto _test_eof
+ _test_eof272: cs = 272; goto _test_eof
+ _test_eof273: cs = 273; goto _test_eof
+ _test_eof274: cs = 274; goto _test_eof
+ _test_eof275: cs = 275; goto _test_eof
+ _test_eof276: cs = 276; goto _test_eof
+ _test_eof277: cs = 277; goto _test_eof
+ _test_eof278: cs = 278; goto _test_eof
+ _test_eof279: cs = 279; goto _test_eof
+ _test_eof280: cs = 280; goto _test_eof
+ _test_eof281: cs = 281; goto _test_eof
+ _test_eof282: cs = 282; goto _test_eof
+ _test_eof283: cs = 283; goto _test_eof
+ _test_eof284: cs = 284; goto _test_eof
+ _test_eof285: cs = 285; goto _test_eof
+ _test_eof286: cs = 286; goto _test_eof
+ _test_eof287: cs = 287; goto _test_eof
+ _test_eof288: cs = 288; goto _test_eof
+ _test_eof289: cs = 289; goto _test_eof
+ _test_eof290: cs = 290; goto _test_eof
+ _test_eof291: cs = 291; goto _test_eof
+ _test_eof292: cs = 292; goto _test_eof
+ _test_eof293: cs = 293; goto _test_eof
+ _test_eof294: cs = 294; goto _test_eof
+ _test_eof295: cs = 295; goto _test_eof
+ _test_eof296: cs = 296; goto _test_eof
+ _test_eof297: cs = 297; goto _test_eof
+ _test_eof298: cs = 298; goto _test_eof
+ _test_eof299: cs = 299; goto _test_eof
+ _test_eof300: cs = 300; goto _test_eof
+ _test_eof301: cs = 301; goto _test_eof
+ _test_eof302: cs = 302; goto _test_eof
+ _test_eof303: cs = 303; goto _test_eof
+ _test_eof304: cs = 304; goto _test_eof
+ _test_eof305: cs = 305; goto _test_eof
+ _test_eof306: cs = 306; goto _test_eof
+ _test_eof307: cs = 307; goto _test_eof
+ _test_eof308: cs = 308; goto _test_eof
+ _test_eof309: cs = 309; goto _test_eof
+ _test_eof310: cs = 310; goto _test_eof
+ _test_eof311: cs = 311; goto _test_eof
+ _test_eof312: cs = 312; goto _test_eof
+ _test_eof313: cs = 313; goto _test_eof
+ _test_eof314: cs = 314; goto _test_eof
+ _test_eof315: cs = 315; goto _test_eof
+ _test_eof316: cs = 316; goto _test_eof
+ _test_eof317: cs = 317; goto _test_eof
+ _test_eof318: cs = 318; goto _test_eof
+ _test_eof319: cs = 319; goto _test_eof
+ _test_eof320: cs = 320; goto _test_eof
+ _test_eof321: cs = 321; goto _test_eof
+ _test_eof322: cs = 322; goto _test_eof
+ _test_eof323: cs = 323; goto _test_eof
+ _test_eof324: cs = 324; goto _test_eof
+ _test_eof325: cs = 325; goto _test_eof
+ _test_eof326: cs = 326; goto _test_eof
+ _test_eof327: cs = 327; goto _test_eof
+ _test_eof328: cs = 328; goto _test_eof
+ _test_eof329: cs = 329; goto _test_eof
+ _test_eof330: cs = 330; goto _test_eof
+ _test_eof331: cs = 331; goto _test_eof
+ _test_eof332: cs = 332; goto _test_eof
+ _test_eof333: cs = 333; goto _test_eof
+ _test_eof334: cs = 334; goto _test_eof
+ _test_eof335: cs = 335; goto _test_eof
+ _test_eof336: cs = 336; goto _test_eof
+ _test_eof337: cs = 337; goto _test_eof
+ _test_eof338: cs = 338; goto _test_eof
+ _test_eof339: cs = 339; goto _test_eof
+ _test_eof340: cs = 340; goto _test_eof
+ _test_eof341: cs = 341; goto _test_eof
+ _test_eof342: cs = 342; goto _test_eof
+ _test_eof343: cs = 343; goto _test_eof
+ _test_eof344: cs = 344; goto _test_eof
+ _test_eof345: cs = 345; goto _test_eof
+ _test_eof346: cs = 346; goto _test_eof
+ _test_eof347: cs = 347; goto _test_eof
+ _test_eof348: cs = 348; goto _test_eof
+ _test_eof349: cs = 349; goto _test_eof
+ _test_eof350: cs = 350; goto _test_eof
+ _test_eof351: cs = 351; goto _test_eof
+ _test_eof352: cs = 352; goto _test_eof
+ _test_eof353: cs = 353; goto _test_eof
+ _test_eof354: cs = 354; goto _test_eof
+ _test_eof355: cs = 355; goto _test_eof
+ _test_eof356: cs = 356; goto _test_eof
+ _test_eof357: cs = 357; goto _test_eof
+ _test_eof358: cs = 358; goto _test_eof
+ _test_eof359: cs = 359; goto _test_eof
+ _test_eof360: cs = 360; goto _test_eof
+ _test_eof361: cs = 361; goto _test_eof
+ _test_eof362: cs = 362; goto _test_eof
+ _test_eof363: cs = 363; goto _test_eof
+ _test_eof364: cs = 364; goto _test_eof
+ _test_eof365: cs = 365; goto _test_eof
+ _test_eof366: cs = 366; goto _test_eof
+ _test_eof367: cs = 367; goto _test_eof
+ _test_eof368: cs = 368; goto _test_eof
+ _test_eof369: cs = 369; goto _test_eof
+ _test_eof370: cs = 370; goto _test_eof
+ _test_eof371: cs = 371; goto _test_eof
+ _test_eof372: cs = 372; goto _test_eof
+ _test_eof373: cs = 373; goto _test_eof
+ _test_eof374: cs = 374; goto _test_eof
+ _test_eof375: cs = 375; goto _test_eof
+ _test_eof376: cs = 376; goto _test_eof
+ _test_eof377: cs = 377; goto _test_eof
+ _test_eof378: cs = 378; goto _test_eof
+ _test_eof379: cs = 379; goto _test_eof
+ _test_eof380: cs = 380; goto _test_eof
+ _test_eof381: cs = 381; goto _test_eof
+ _test_eof382: cs = 382; goto _test_eof
+ _test_eof383: cs = 383; goto _test_eof
+ _test_eof384: cs = 384; goto _test_eof
+ _test_eof385: cs = 385; goto _test_eof
+ _test_eof386: cs = 386; goto _test_eof
+ _test_eof387: cs = 387; goto _test_eof
+ _test_eof388: cs = 388; goto _test_eof
+ _test_eof389: cs = 389; goto _test_eof
+ _test_eof390: cs = 390; goto _test_eof
+ _test_eof391: cs = 391; goto _test_eof
+ _test_eof392: cs = 392; goto _test_eof
+ _test_eof393: cs = 393; goto _test_eof
+ _test_eof394: cs = 394; goto _test_eof
+ _test_eof395: cs = 395; goto _test_eof
+ _test_eof396: cs = 396; goto _test_eof
+ _test_eof397: cs = 397; goto _test_eof
+ _test_eof398: cs = 398; goto _test_eof
+ _test_eof399: cs = 399; goto _test_eof
+ _test_eof400: cs = 400; goto _test_eof
+ _test_eof401: cs = 401; goto _test_eof
+ _test_eof402: cs = 402; goto _test_eof
+ _test_eof403: cs = 403; goto _test_eof
+ _test_eof404: cs = 404; goto _test_eof
+ _test_eof405: cs = 405; goto _test_eof
+ _test_eof406: cs = 406; goto _test_eof
+ _test_eof407: cs = 407; goto _test_eof
+ _test_eof408: cs = 408; goto _test_eof
+ _test_eof409: cs = 409; goto _test_eof
+ _test_eof410: cs = 410; goto _test_eof
+ _test_eof411: cs = 411; goto _test_eof
+ _test_eof412: cs = 412; goto _test_eof
+ _test_eof413: cs = 413; goto _test_eof
+ _test_eof414: cs = 414; goto _test_eof
+ _test_eof415: cs = 415; goto _test_eof
+ _test_eof416: cs = 416; goto _test_eof
+ _test_eof417: cs = 417; goto _test_eof
+ _test_eof418: cs = 418; goto _test_eof
+ _test_eof419: cs = 419; goto _test_eof
+ _test_eof420: cs = 420; goto _test_eof
+ _test_eof421: cs = 421; goto _test_eof
+ _test_eof422: cs = 422; goto _test_eof
+ _test_eof423: cs = 423; goto _test_eof
+ _test_eof424: cs = 424; goto _test_eof
+ _test_eof425: cs = 425; goto _test_eof
+ _test_eof426: cs = 426; goto _test_eof
+ _test_eof427: cs = 427; goto _test_eof
+ _test_eof428: cs = 428; goto _test_eof
+ _test_eof429: cs = 429; goto _test_eof
+ _test_eof430: cs = 430; goto _test_eof
+ _test_eof431: cs = 431; goto _test_eof
+ _test_eof432: cs = 432; goto _test_eof
+ _test_eof433: cs = 433; goto _test_eof
+ _test_eof434: cs = 434; goto _test_eof
+ _test_eof435: cs = 435; goto _test_eof
+ _test_eof436: cs = 436; goto _test_eof
+ _test_eof437: cs = 437; goto _test_eof
+ _test_eof438: cs = 438; goto _test_eof
+ _test_eof439: cs = 439; goto _test_eof
+ _test_eof440: cs = 440; goto _test_eof
+ _test_eof441: cs = 441; goto _test_eof
+ _test_eof442: cs = 442; goto _test_eof
+ _test_eof443: cs = 443; goto _test_eof
+ _test_eof444: cs = 444; goto _test_eof
+ _test_eof445: cs = 445; goto _test_eof
+
+ _test_eof: {}
+ if p == eof {
+ switch cs {
+ case 448:
+ goto tr529
+ case 22:
+ goto tr24
+ case 449:
+ goto tr529
+ case 57:
+ goto tr24
+ case 75:
+ goto tr102
+ case 76:
+ goto tr102
+ case 77:
+ goto tr102
+ case 78:
+ goto tr102
+ case 79:
+ goto tr102
+ case 80:
+ goto tr102
+ case 81:
+ goto tr102
+ case 82:
+ goto tr102
+ case 83:
+ goto tr102
+ case 84:
+ goto tr102
+ case 85:
+ goto tr102
+ case 86:
+ goto tr102
+ case 87:
+ goto tr102
+ case 88:
+ goto tr102
+ case 89:
+ goto tr102
+ case 90:
+ goto tr102
+ case 451:
+ goto tr533
+ case 452:
+ goto tr533
+ }
+ }
+
+ _out: {}
+ }
+
+// line 161 "parseqt.rl"
+
+
+ if p < pe {
+ m0, m1 = p, p
+ for m0 > 0 && data[m0-1] != '\n' {
+ m0--
+ }
+ for m1 < len(data) && data[m1] != '\n' {
+ m1++
+ }
+ return fmt.Errorf("cannot parse header file:%d:%d: %s", curline, p-m0, data[m0:m1])
+ }
+
+ if foundclass == 0 {
+ return fmt.Errorf("cannot find C++ class in header file")
+ }
+ if foundclass == 1 {
+ return fmt.Errorf("cannot find end of C++ class in header file")
+ }
+ if foundclass > 2 {
+ return fmt.Errorf("found too many C++ classes in header file")
+ }
+ return nil
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/parseqt.rl b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/parseqt.rl
new file mode 100644
index 000000000..4aa4a1345
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/gengl/parseqt.rl
@@ -0,0 +1,184 @@
+//
+// To compile:
+//
+// ragel -Z -G2 -o parseqt.go parseqt.rl
+//
+// To show a diagram of the state machine:
+//
+// ragel -V -G2 -p -o parseqt.dot parseqt.rl
+// dot -Tsvg -o parseqt.svg parseqt.dot
+// chrome parseqt.svg
+//
+
+package main
+
+import (
+ "fmt"
+)
+
+%%{
+ machine parseqt;
+
+ write data;
+}%%
+
+func parseQt(data string, header *Header) error {
+ var cs, p, pe int
+ var ts, te, act, eof int
+
+ pe = len(data)
+ eof = len(data)
+
+ _, _, _ = ts, te, act
+
+ //stack := make([]int, 32)
+ //top := 0
+
+ var curline = 1
+
+ var m0, m1, m2, m3, m4, m5, m6 int
+ var foundclass int
+ var inpublic bool
+ var heading string
+ var lineblock int
+ var f Func
+
+ %%{
+ nl = '\n' @{ curline++ };
+ cd = [^\n];
+ sp = [ \t];
+ id = [A-Za-z0-9_]+;
+ spnl = ( sp | nl );
+
+ main := |*
+ 'class Q_GUI_EXPORT ' id >{ m0 = p } %{ m1 = p } ' : public QAbstractOpenGLFunctions' nl '{' nl
+ {
+ header.Class = data[m0:m1]
+ foundclass++
+ fgoto inclass;
+ };
+
+ 'class Q_GUI_EXPORT ' id >{ m0 = p } %{ m1 = p } nl '{' nl
+ {
+ if data[m0:m1] == "QOpenGLFunctions" {
+ header.Class = data[m0:m1]
+ foundclass++
+ }
+ fgoto inclass;
+ };
+
+ # Ignore any other line.
+ cd* nl;
+ *|;
+
+ inclass := |*
+ # Track heading comments.
+ sp* '//' sp* cd* >{ m0 = p } @{ m1 = p } sp* nl
+ {
+ heading = data[m0:m1]
+ _ = heading
+ lineblock++
+ };
+
+ # Ignore constructor/destructor.
+ sp* '~'? id >{ m0 = p } %{ m1 = p } '()' sp* ( ';' | '{}' ) sp* nl {
+ if data[m0:m1] != header.Class {
+ fbreak;
+ }
+ };
+
+ # Ignore initialization function.
+ sp* 'bool' sp+ 'initializeOpenGLFunctions()' cd* nl;
+
+ # Ignore friend classes.
+ sp* 'friend' sp+ 'class' sp+ id sp* ';' sp* nl;
+
+ # Track public/private to ignore whatever isn't public.
+ sp* 'public:' sp* nl
+ {
+ inpublic = true
+ };
+ sp* ( 'private:' | 'protected:' ) sp* nl
+ {
+ inpublic = false
+ };
+
+ # Record function prototypes.
+ sp* ( 'const' sp+ )? id >{ m0 = p } %{ m1 = p; m4 = 0 } ( sp 'const'? | '*'+ ${ m4++ } )+
+ # Name
+ 'gl' >{ m2 = p } id %{ m3 = p; f = Func{Name: data[m2:m3], Type: data[m0:m1], Addr: m4} } sp* '(' >{ m6 = 0 } sp*
+ # Parameters
+ ( 'void'? sp* ')' | ( ( 'const' %{ m6 = 1 } sp+ )? id >{ m0 = p } %{ m1 = p; m4 = 0 } ( sp 'const'? | '*' ${ m4++ } )+ id >{ m2 = p; m5 = 0 } %{ m3 = p } ( '[' [0-9]+ ${ m5 = m5*10 + (int(data[p]) - '0') } ']' )? sp* [,)]
+ >{ f.Param = append(f.Param, Param{Name: data[m2:m3], Type: data[m0:m1], Addr: m4, Array: m5, Const: m6 > 0}); m6 = 0 } sp* )+ )
+ sp* ';'
+ {
+ if (inpublic) {
+ header.Func = append(header.Func, f)
+ }
+ };
+
+ # Record feature flags.
+ sp* 'enum OpenGLFeature' sp* nl sp* '{' sp* nl
+ ( sp* id >{ m0 = p } %{ m1 = p } sp* '=' sp* '0x' >{ m2 = p } [0-9]+ %{ m3 = p } ','? sp* nl
+ >{ header.FeatureFlags = append(header.FeatureFlags, Const{Name: data[m0:m1], Value: data[m2:m3]}) } )+
+ sp* '};' nl;
+
+ # Ignore non-gl functions and fields.
+ sp* ( 'static' sp+ )? ( 'const' sp+ )? [A-Za-z0-9_:]+ ( sp 'const'? | '*'+ ${ m4++ } )+ ( id - ( 'gl' id ) ) ( '(' cd* ')' )? sp* 'const'?
+ sp* ( ';' | '{' cd* '}' ) sp* nl;
+
+ # Ignore Q_DECLARE_FLAGS
+ sp* 'Q_DECLARE_FLAGS(' cd+ ')' sp* nl;
+
+ # Ignore deprecated functionality.
+ '#if QT_DEPRECATED_SINCE(' cd+ ')' sp* nl
+ ( cd* - '#endif' ) sp* nl
+ '#endif' sp* nl;
+
+ # Done.
+ sp* '}' sp* ';' nl
+ {
+ foundclass++;
+ fgoto main;
+ };
+
+ # Reset relevant states on empty lines.
+ sp* nl
+ {
+ // Reset heading comment.
+ heading = ""
+
+ // Start new line block.
+ lineblock++
+ };
+
+ *|;
+
+ skiperror := [^\n]* (';' | nl ) @{ fgoto main; };
+
+ write init;
+ write exec;
+ }%%
+
+ if p < pe {
+ m0, m1 = p, p
+ for m0 > 0 && data[m0-1] != '\n' {
+ m0--
+ }
+ for m1 < len(data) && data[m1] != '\n' {
+ m1++
+ }
+ return fmt.Errorf("cannot parse header file:%d:%d: %s", curline, p-m0, data[m0:m1])
+ }
+
+ if foundclass == 0 {
+ return fmt.Errorf("cannot find C++ class in header file")
+ }
+ if foundclass == 1 {
+ return fmt.Errorf("cannot find end of C++ class in header file")
+ }
+ if foundclass > 2 {
+ return fmt.Errorf("found too many C++ classes in header file")
+ }
+ return nil
+}
diff --git a/Godeps/_workspace/src/github.com/obscuren/qml/gl/glbase/glbase.go b/Godeps/_workspace/src/github.com/obscuren/qml/gl/glbase/glbase.go
new file mode 100644
index 000000000..c483b15a2
--- /dev/null
+++ b/Godeps/_workspace/src/github.com/obscuren/qml/gl/glbase/glbase.go
@@ -0,0 +1,33 @@
+package glbase
+
+// A Context represents an OpenGL context that may be rendered on by the
+// version-specific APIs under this package.
+type Context struct {
+ // This is just a marker at the moment, as the GL.API functions will
+ // initialize their GL context from the current context in the
+ // renderer thread. The design supports proper expansion and fixes for
+ // upstream changes that break that model, though.
+ private struct{}
+}
+
+// Contexter is implemented by values that have an assigned OpenGL context.
+type Contexter interface {
+ GLContext() *Context
+}
+
+type (
+ Bitfield uint32
+ Enum uint32
+ Sync uintptr
+ Clampf float32
+ Clampd float64
+
+ Uniform int32
+ Attrib int32
+ Texture uint32
+ Program uint32
+ Shader uint32
+ Buffer uint32
+ Framebuffer uint32
+ Renderbuffer uint32
+)